Matching an XPath expression against a javascript variable



I have XML content that I need to query from within javascript. To use a simple example, here is the 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>


This XML is referenced in an 'xmlDoc' variable.


Now I want to find all nodes where the child node is equal to a value passed in via a URL parameter, or some other dynamically selected method. This category is stored in a variable called 'category'.


I can create an evaluate expression like:



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


if I statically enter the category value.


But how do I check if the value of the node matches the value of the 'category' variable? I likely need to escape the 'category' variable in some way, but I cannot figure it out.


No comments:

Post a Comment