XPATH:如何选择不同级别的节点?

时间:2012-11-28 14:52:08

标签: xml xpath selection

我想通过XPATH做的是检索名为Poly 1的地标坐标。可能是一个非常简单的问题,但我对XPATH的了解有限,而且我很难在名称和名称之间存在额外的标记。坐标( “多边形”)

正如您所看到的,可以有一个或多个元素,我想全部检索它们。

<?xml version="1.0" encoding="UTF-8"?>
<kml>
<Document>
       <Placemark>
            <name>Poly 1</name>
            <Polygon>
                        <coordinates>
                            -58.40844625779582,-34.60295278618136,0
                        </coordinates>
                        <coordinates>
                            -68.40844625779582,-77.60295278618136,0
                        </coordinates>

            </Polygon>
        </Placemark>
        <Placemark>
            <name>Poly 2</name>
            <Polygon>
                        <coordinates>
                            -58.40414334150432,-34.59992445476809,0
                        </coordinates>
            </Polygon>
        </Placemark>
</Document>
</kml>

1 个答案:

答案 0 :(得分:0)

此XPATH表达式将获取坐标节点

//Placemark[./name[text()='Poly 1']]//coordinates

这是它的工作原理:

  • //Placemark选择所有地标标记
  • //Placemark[./name]选择所有带有名称子标记的地标标记
  • //Placemark[./name[text()='Poly 1']]选择所有带有名称子标记的地标标记,其中名称标记包含文字Poly 1