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
Xml 为什么//元素在XPath中选择了太多的元素?_Xml_Xpath - Fatal编程技术网

Xml 为什么//元素在XPath中选择了太多的元素?

Xml 为什么//元素在XPath中选择了太多的元素?,xml,xpath,Xml,Xpath,我正在从事一个项目,在这个项目中,我需要能够转换XML文档,并且需要能够识别Opportunity的名称,但是xpath表达式//Name返回所有者的名称和Opportunity的名称 XML示例: <root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org"> <Opportunity> <Owner> <Name>Christi

我正在从事一个项目,在这个项目中,我需要能够转换XML文档,并且需要能够识别
Opportunity
名称
,但是xpath表达式
//Name
返回
所有者的
名称
Opportunity
名称

XML示例:

  <root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
    <Opportunity>
      <Owner>
        <Name>Christian Bale</Name>
      </Owner>
      <Name>Opportunity Name</Name>
    </Opportunity>
  </root>

克里斯蒂安·贝尔
机会名称
我似乎找不到只返回opportunity名称的谓词。因为这两个元素都是其级别的最后一个
Name
元素,
//Name[last()]
//Name[1]
仍然返回这两个元素

是否可以编写一个XPath表达式,只返回
商机
名称
,而不返回
商机
所有者的名称?或者,在选择一个匹配的便笺后,是否可以删除它?

只需使用即可


//Opportunity/Name/text()

了解
//
选择后代(或自身),因此它通过设计跳过传统。要指定传统,请使用
/
,默认情况下沿子轴选择:

/root/Opportunity/Name
然后,可从中单独选择

/root/Opportunity/Owner/Name
按要求