将XPath表达式与javascript变量匹配

时间:2014-11-21 20:01:50

标签: javascript xml xpath evaluate

我有需要在javascript中查询的XML内容。要使用一个简单的例子,这里是XML:

<books>
  <book>
    <title>ABC</title>
    <author>Smith, John</author>
    <subject>Science Fiction</subject>
  </book>
  <book>
    <title>DEF</title>
    <author>Jones, Tom</author>
    <subject>Biography</subject>
  </book>
</books>

此XML在&#39; xmlDoc&#39;中引用。变量。

现在我想找到子节点等于通过URL参数传入的值的所有节点,或其他一些动态选择的方法。此类别存储在名为&#39; category&#39;。

的变量中

我可以创建一个评估表达式,如:

var result = xmlDoc.evaluate('/books/book[category="Biography"]', xmlDoc, null, XPathResult. ANY_TYPE,null);

如果我静态输入类别值。

但是我如何检查节点的值是否与&#39;类别的值相匹配?变量?我可能需要逃避“&#39;类别&#39;在某种程度上变量,但我无法弄清楚。

1 个答案:

答案 0 :(得分:3)

就像你concatenate Strings normally in JavaScript一样。这是通过使用+操作:

var result = xmlDoc.evaluate('/books/book[category="' + category + '"]',
                             xmlDoc, null, XPathResult.ANY_TYPE, null);