2014-11-21 59 views
2

我有我需要从JavaScript内查询的XML内容。使用一个简单的例子,这里是XML:匹配一个JavaScript变量的XPath表达式

<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在'xmlDoc'变量中被引用。

现在我想找到所有节点的子节点等于通过URL参数或其他一些动态选择的方法传入的值。这个类别存储在一个名为'category'的变量中。

我可以创造像一个计算表达式:

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

,如果我进入静态类别值。

但是,如何检查节点的值是否与'category'变量的值匹配?我可能需要以某种方式逃避“类别”变量,但我无法弄清楚。

+1

我缺少的东西,或为什么你会不只是用'“/书籍/书[类别=“” +分类+“”]”'? – t0mppa 2014-11-21 20:10:33

+0

你不会错过任何东西。但显然我是,我的大脑。 :)对不起,当答案很简单时,我正在寻找更复杂的东西。谢谢! – 2014-11-21 20:15:31

+0

@ t0mppa你应该添加,作为答案,以便它可以被接受。 – 2014-11-21 20:22:12

回答