使用javascript xpath检查字符串值和xml属性

时间:2013-05-04 04:37:16

标签: javascript xml xpath

这是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";

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

 1,2

这两个都是我的xml文件中的product_id 帮助我解决这个问题 thansk

1 个答案:

答案 0 :(得分:2)

您正在寻找的xpaht表达式应该是:

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

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

大多数浏览器支持“评估”(但不支持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';