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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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通配符和contains()函数用法_Xml_Xpath_Contains - Fatal编程技术网

Xml XPath通配符和contains()函数用法

Xml XPath通配符和contains()函数用法,xml,xpath,contains,Xml,Xpath,Contains,我在使用XPath和contains函数时遇到问题。想象一下下面的XML示例: <doc> <Test> <Name>1 Pre Histoy</Name> <Type>Known</Type> <Data> <Name>Dinasor</Name> <Name>Fish<

我在使用XPath和contains函数时遇到问题。想象一下下面的XML示例:

   <doc>  
     <Test>
       <Name>1 Pre Histoy</Name>
       <Type>Known</Type>
       <Data>
          <Name>Dinasor</Name>
          <Name>Fish</Name>
      </Data>
      </Test>

      <Test>
        <Name>1 Post Histoy</Name>
        <Type>Known</Type>
        <Data>
          <Name>Human</Name>
          <Name>Dog</Name>
        </Data>
     </Test>

      <Test>
        <Name>1 Post Histoy</Name>
        <Type>UNKNOWN</Type>
        <Data>
          <Name>Human</Name>
          <Name>Dog</Name>
        </Data>
     </Test>  

  </doc>
任何帮助和提示都将不胜感激。

试试以下方法:

/doc/Test[contains(Name, "Pre") and Type="Known"]/Data/Name
下面是一个使用Javascript实现的工作示例

函数fu(路径){
var输出=”;
var results=document.evaluate(路径、文档、null、XPathResult.ANY_类型、null);
而(nextResult=results.iterateNext()){output+=nextResult.outerHTML+“\n”}
返回输出;
}
document.body.innerText=fu('//doc/Test[contains(Name,“Pre”)和Type=“Known”]/Data/Name')

1史前
已知的
迪纳索
鱼
1后历史
已知的
人类
狗
1后历史
不为人知
人类
狗

这不应该是结尾带有大写字母D的数据吗?我想是的,如果你把第一个字符算为结尾之一……很抱歉,这只是一个例子。大写字母D也不会做什么。@Jon:谢谢!这是永远的:)很明显,你捡起它的速度比我快;)我也因为同样的原因进行了测试,它成功了。谢谢!我的是/PlaceSearchResponse/result[contains(name,'Bimeks')]/geometry
/doc/Test[contains(Name, "Pre") and Type="Known"]/Data/Name