使用javascript xpath检查带有XML属性的字符串值

check string value with xml attribute using javascript xpath

本文关键字:属性 字符串 XML javascript xpath 检查 使用      更新时间:2023-09-26

这是xml的一部分:-

<products>
  <product_id value="1">
    <tab_id value="351">
      <tab_name value="test1"/>
      <date value="2013'05'10 12:30:00" />
    </tab_id>
  </product_id>
  <product_id value="2">
    <tab_id value="352">
      <tab_name value="test2"/>
      <date value="2013'05'12 12:00:00" />
    </tab_id>
  </product_id>
</products>

我在一个变量中有以下字符串:-

var result_date="2013'05'10,2013'05'11,2013'05'12,2013'05'13";

这里我想检查result_date每个日期与xml文件元素date
使用javascript和xpath。
如果result_date在xml date中匹配,则返回product_id
我不知道如何检查yyyy/mm/dd hh:mm:ssyyyy/mm/dd
预期的输出:-

 1,2

这两个都是product_id在我的xml文件。
帮我一下。
thansk

您正在寻找的xpath表达式应该类似于:

var path="//product_id[contains('" + result_date+ "',substring-before(date/@value ,' '))]";

搜索任何product_id,其中date中空白之前的子字符串是变量result_date的一部分。

大多数浏览器支持"evaluate"(但IE不支持)。

var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null);
var result=nodes.iterateNext();
while (result)
  {
  document.write(result.attributes.value.nodeValue);
  document.write("<br>");
  result=nodes.iterateNext();
  }

如果你的"result_date"是一个const字符串。你必须注意转义。

var result_date='2013''05''10,2013''05''11,2013''05''12,2013''05''13';