父节点更改名称时的xpath过滤器

时间:2013-10-03 11:31:09

标签: vb.net xpath

我试图从第三方来源获取节点的价值。 Xmlstructure的一部分有一个名称在point和framedPoint之间变化的节点。我如何获得纬度值?这里是xml的一部分,它们与xml有很多级别,因此显示了相关区域。

此处节点称为点

 <tpegpointLocation xsi:type="TPEGSimplePoint">
     <point xsi:type="TPEGJunction">
         <pointCoordinates>
            <latitude>54.894825</latitude>
         </pointCoordinates>
     </point>
 </tpegpointLocation>

这里是framedPoint

<tpegpointLocation xsi:type="TPEGSimplePoint">
    <framedPoint xsi:type="TPEGJunction">
            <pointCoordinates>
                  <latitude>54.894825</latitude>
            </pointCoordinates>
    </framedPoint>
</tpegpointLocation>

谢谢,任何帮助

2 个答案:

答案 0 :(得分:0)

您可以在xpath中使用星号作为通配符

/tpegpointLocation/*/pointCoordinates/latitude

答案 1 :(得分:0)

以下XPath可以完成这项工作:

//tpegpointLocation//pointCoordinates/latitude

这意味着:

  • //tpegpointLocation搜索XML文件中的所有<tpegpointLocation>元素
  • 第二个//pointCoordinates表示搜索<pointCoordinates>下面的所有<tpegpointLocation>个元素,无论它们之间是哪个元素(一个或多个或不同的名称)
  • /latitude表示获取<latitude>
  • 下面的<pointCoordinates>元素

请注意,使用//扫描整个XML文件。如果您能够更改//tpegpointLocation,那就会更好更快。