Ale*_*ias 16 xml xpath xml-parsing
拥有这个(简化的)XML:
<?xml version="1.0" encoding="UTF-8"?>
<kml>
<Document>
<Placemark>
<name>Poly 1</name>
<Polygon>
<coordinates>
-58.40844625779582,-34.60295278618136,0
</coordinates>
</Polygon>
</Placemark>
<Placemark>
<name>Poly 2</name>
<Polygon>
<coordinates>
-58.40414334150432,-34.59992445476809,0
</coordinates>
</Polygon>
</Placemark>
</Document>
</kml>
Run Code Online (Sandbox Code Playgroud)
如何选择每个地标的名称和坐标?现在我可以使用以下XPath表达式选择他们的名字:
//Document//Placemark//name
Run Code Online (Sandbox Code Playgroud)
如何在没有任何其他数据的情况下选择两者?
ton*_*edz 39
您可以在XPath表达式中使用union.只需使用运营商:|
//Document/Placemark/name | //Document/Placemark/Polygon/coordinates
Run Code Online (Sandbox Code Playgroud)
如果您不需要,请不要使用//(后代轴).使用//,这也可以://name | //coordinates.指定确切的路径在性能方面更好.
用途:
/*/*/Placemark/name | /*/*/Placemark/*/coordinates
Run Code Online (Sandbox Code Playgroud)
这指定了两个单独的XPath表达式的结果的并集 - 使用标准的XPath联合运算符|.选择都name认为是儿童的元素Placemark是XML文档的顶级元素的孙子元素,再加上所有的coordinates是一个宏大的,子元素Placemark是XML文档的顶级元素的孙元素.
所选元素按文档顺序排列(尽管没有规范的W3C文档指定顺序),这意味着在评估结果中(通常是XmlNodeList类型),任何name元素都直接跟随其对应的coordinates元素.
| 归档时间: |
|
| 查看次数: |
28679 次 |
| 最近记录: |