Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用xpath和一些标准从xml中提取坐标_Xml_Xpath - Fatal编程技术网

使用xpath和一些标准从xml中提取坐标

使用xpath和一些标准从xml中提取坐标,xml,xpath,Xml,Xpath,我花了几个小时寻找解决方案,但现在我需要你的帮助。也许你会拿我开玩笑,但是……无论如何。 我想在xpath与crtiteria value=bnb匹配时获取坐标和其他一些信息 我尝试了语法//Data/value['bnb']/祖先::点/坐标[text()],但没有结果 <Placemark xmlns=""> <name><![CDATA[Malcesine]]></name> <Point>

我花了几个小时寻找解决方案,但现在我需要你的帮助。也许你会拿我开玩笑,但是……无论如何。 我想在xpath与crtiteria value=bnb匹配时获取坐标和其他一些信息

我尝试了语法//Data/value['bnb']/祖先::点/坐标[text()],但没有结果

      <Placemark xmlns="">
    <name><![CDATA[Malcesine]]></name>
    <Point>
      <coordinates>10.8103913069,45.7645853643</coordinates>
    </Point>
    <ExtendedData>
      <Data name="tournumber">
        <value>1</value>
      </Data>
      <Data name="guidename">
        <value>Lake Garda</value>
      </Data>
      <Data name="category">
        <value>numeration</value>
      </Data>
      <Data name="category">
        <value>bnb</value>
      </Data>
      <Data name="WayPointNumber">
        <value>3</value>
      </Data>
    </ExtendedData>
  </Placemark>
  <Placemark xmlns="">
    <name><![CDATA[Gelateria Cento per cento]]></name>
    <Point>
      <coordinates>10.8087927103,45.7659774682</coordinates>
    </Point>
    <ExtendedData>
      <Data name="tournumber">
        <value>1</value>
      </Data>
      <Data name="guidename">
        <value>Lake Garda</value>
      </Data>
      <Data name="WayPointNumber">
        <value>3</value>
      </Data>
    </ExtendedData>
  </Placemark>

10.8103913069,45.7645853643
1.
加尔达湖
计算
bnb
3.
10.8087927103,45.7659774682
1.
加尔达湖
3.

Thx提前

将谓词放在
Placemark
上,而不是尝试使用
祖先::
返回树

//Placemark[ExtendedData/Data/value='bnb']/Point/coordinates

大多数情况下,直接创建到元素的路径,然后将谓词添加到过滤器更容易。因此,您可以从
//Placemark/Point/coordinates
开始。然后将其缩小到
Placemark
,它的
扩展数据/数据/值
等于
bnb

酷!我怎样才能添加更多的标准://Placemark[ExtendedData/Data/value='bnb'和@name='WayPointNumber']/Point/coordinates???@happymapper-是的,但要注意上下文
Placemark
没有名为
name
的属性,但是
Data
有属性,因此您必须在
数据上添加谓词。谢谢您的建议-今天的时间不多了,我明天会尝试。这越来越棘手-只有在3个标准为真时,我才需要坐标。示例:数据[@name='bnb']和数据[@name='WayPointNumber']以及数据/值='numeration'。如何将这些添加到xpath语法中?