2011-10-22 52 views
2

我想檢查一些html標記的結構,只檢查結構。 例如,我需要檢查<list-item-canvas>標籤中的SOMEWHERE是否爲< image name='category-pic'>標籤。用XPATH檢查HTML結構,任意節點數

我寫:

//div[@class='list-item-canvas'][1]/*/img[@name='category-pic'] 

這是工作,如果<img>是任何(「*」)在層次結構節點之後的第二個節點,,如果我有<img>某處深深的結構, 我不想關心級別層次結構那麼我應該怎麼寫我的xpath-query?我會認爲,而不是'*'我可能會寫'**',但我不能..

這可能嗎?

回答

2

使用

(//div[@class='list-item-canvas'])[1]//img[@name='category-pic'] 

這將選擇任何img的字符串值,其name屬性是'category-pic',這是第一的後代(按文檔順序)div的字符串值,其class屬性是'list-item-canvas'

請注意周圍的子表達式的bracets:

(//div[@class='list-item-canvas'])[1] 

這是完全不同的:

//div[@class='list-item-canvas'][1] 

後者選擇文檔中的每個div元素是第一div它的父母的孩子 - 可能有不止一個這樣的元素。

2

這樣做:

//div[@class='list-item-canvas'][1]//img[@name='category-pic'] 

//之前img讓你找到,而不僅僅是兒童或div的孫子div這是一個img的任何後代。

您是否確定要[1]?它可能不會做你的想法。

+0

我確定)thx。 – ses