如果兄弟节点具有特定的值,如何select使用XPath的节点?
我有以下文件
<a> <bb>abc</bb> <cc>ccc</cc> <dd>ddd</dd> </a> <a> <bb>zz</bb> <cc>1</cc> <dd>2</dd> </a>  如果<bb>是zz如何使用XPath获得<cc>的值? 
 不知道为什么每个人都在查询兄弟姐妹,还可以检查匹配来自<a/>的谓词的谓词的<bb/>元素: 
 //a[bb/text() = "zz"]/cc/text() 
 你需要的是following-sibling XPath轴 
 //a/bb[text()="zz"]/following-sibling::cc[1]/text() 
在这里testingXpath: http ://www.xpathtester.com/obj/b55ec3ac-dfa4-4f44-81e8-f963ea4a0625
 问: 如果兄弟节点具有特定值,如何使用XPathselect一个节点? 
 因为只有“XPath轴”用于后续兄弟姐妹和前兄弟姐妹。 如果位置已修复,您可以使用其中的一个。 
 但更好: 
 寻找cc是父母有价值'zz'的孩子bb: 
 //cc[../bb='zz']" 
首先,你的例子不是格式良好的XML。 俯视那个,你没有很好地描述你的意图(你究竟想在什么情况下select什么?),我假设你想这样做:
 //cc[preceding-sibling::bb[text()="zz"]]/text() 
它select
 TEXT VALUES OF ALL <CC> ELEMENTS //cc /text() THAT HAVE A PRECEDING SIBLING <BB> [preceding-sibling::bb ] THAT HAS TEXT VALUE EQUAL TO "zz" [text()="zz"] 
你可以写也是
 //bb[text()="zz"]/following-sibling::cc/text() 
请看规范 ,它有一些非常好读的例子 ,你会学到很多东西。
 //a/cc[../bb='zz']/text() 
// a:无论它在哪里,都select所有的“a”元素。
// a / cc:select“a”元素的子元素“cc”(不pipea在哪里)。
..:select当前节点的父节点。
[../bb='zz']:兄弟'bb'元素的值是zz。
参考: http : //www.w3schools.com/xsl/xpath_syntax.asp