我正在寻找正确的xpath语法来获取元素的特定父代。
例:
例:
root |- div | | | |----??? ---| | | |-a [class=1] | | |- text[ A TEXT] | | | | | | | |-text[THE TEXT] | |-div | |-text[THE TEXT] | |-div | |-text[THE TEXT]
我想得到文本“文本”,但在同一个div内包含一个[class = 1]的文本。这样的事情
//div//a[@class=1]/text[contains(.,'A TEXT')]/parent::*/parent::*.... <till div element> /text
给定XML
<?xml version="1.0"?> <root> <foo id="id1"> <foo id="i2"> <baz/> </foo> </foo> </root>
您可以使用XPath表达式从baz找到最近的祖先foo元素:
//baz/ancestor::foo[1]
哪个将选择id“i2”的foo元素节点。
所以在你的例子中(如果我明白了),一旦你得到了你想要的“a”元素,你可以通过在“/ ancestor :: div [1]”中附加树来“离开”到最近的祖先div表达。