我有這樣的XPath:Xpath的孩子
.//*[@id='some_id']/td//div
,現在我想選擇是某種類型的,例如每一個孩子要麼是一個標籤或跨度的div的兒童。像這樣的東西
.//*[@id='some_id']/td//div/(label|span)/.......
但這是無效的xpath。我怎樣才能做到這一點(wthout寫爲給定的2例兒童類型的兩個完整的XPath)
我有這樣的XPath:Xpath的孩子
.//*[@id='some_id']/td//div
,現在我想選擇是某種類型的,例如每一個孩子要麼是一個標籤或跨度的div的兒童。像這樣的東西
.//*[@id='some_id']/td//div/(label|span)/.......
但這是無效的xpath。我怎樣才能做到這一點(wthout寫爲給定的2例兒童類型的兩個完整的XPath)
你需要使用特定元素的
後裔::
選擇子元素。看看下面的例子中,
.//*[@id='some_id']/td//div/descendant::label[@class='some-class']
以上的XPath將得到帶班「的一些一流」,這實際上是「.//*[@id='some_id']/td//的孩子所有的標籤div /「元素。
找到多個子元素,然後用下面的XPath,
.//*[@id='some_id']/td//div/descendant::*[local-name()='label' or local-name='span']
後代::涵蓋兒童,孫輩和所有其他後代,而不僅僅是兒童。結果可能有不需要的標籤。 –
descendant::
的發現下面的所有級別,只找到孩子使用
.//*[@id='some_id']/td//div/*[self::label or self::span]
'.//*[@id='some_id ']/td // div/* [self :: label or self :: span]' – splash58
您提供的路徑('td/div /(label | span)')在XPath 2.0中有效,但不在XPath 1.0中。如果您只對1.0感興趣,請爲您的問題添加「XPath 1.0」。 –