我需要帮助获取包含具有特定值的子节点的节点,命名空间无关。
所以,如果这是我的XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<FWWO xmlns="http://www.ibm.com/maximo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<FWWOSet>
<WORKORDER>
<COORDINATES>
<Point>
<KEY>123456</KEY>
<LAT>32.97740936279297</LAT>
<LONG>-81.84439086914062</LONG>
</Point>
<Point>
<KEY>654321</KEY>
<LAT>22.932993384764625</LAT>
<LONG>-66.08171081542969</LONG>
</Point>
</COORDINATES>
</WORKORDER>
</FWWOSet>
</FWWO>
目前,我可以使用此
//*[name()='Point']
并获得以下内容:
<Point xmlns="http://www.ibm.com/maximo">
<KEY>123456</KEY>
<LAT>32.97740936279297</LAT>
<LONG>-81.84439086914062</LONG>
</Point>
<Point xmlns="http://www.ibm.com/maximo">
<KEY>654321</KEY>
<LAT>22.932993384764625</LAT>
<LONG>-66.08171081542969</LONG>
</Point>
我现在如何才能获得具有值为654321的KEY节点的Point节点(和子节点)?
我想要的结果是:
<Point xmlns="http://www.ibm.com/maximo">
<KEY>654321</KEY>
<LAT>22.932993384764625</LAT>
<LONG>-66.08171081542969</LONG>
</Point>
答案 0 :(得分:1)
尝试添加其他谓词...
//*[local-name()='Point'][*[local-name()='KEY']='654321']
如果&#34; 的节点值为654321 &#34;从字面上看,这是一个选择......
//*[local-name()='Point'][.//node()[contains(.,'654321')]]