1: var root = xmlDoc.documentElement;
2: var nsResolver = xmlDoc.createNSResolver(xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
3: var xpathResult = xmlDoc.evaluate('count(//*)', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null); 4: $("#response").append("<b>Number of Nodes: </b>" + xpathResult.numberValue + "<br>"); 5: // @ Selects attributes
6: var xpathResult = xmlDoc.evaluate('count(//*/@*)', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null); 7: $("#response").append("<b>Number of Nodes: </b>" + xpathResult.numberValue + "<br>"); 8: // . Selects the current node
9: var xpathResult = xmlDoc.evaluate('count(.)', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null); 10: $("#response").append("<b>Number of Nodes: </b>" + xpathResult.numberValue + "<br>"); 11: // / Selects from the root node
12: var xpathResult = xmlDoc.evaluate('count(/)', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null); 13: $("#response").append("<b>Number of Nodes: </b>" + xpathResult.numberValue + "<br>"); 14: // Predicates are always embedded in square brackets.
15: var xpathResult = xmlDoc.evaluate('count(//*[1])', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null); 16: $("#response").append("<b>Number of Nodes: </b>" + xpathResult.numberValue + "<br>"); 17: // node() Matches any node of any kind
18: var xpathResult = xmlDoc.evaluate('count(//node())', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null); 19: $("#response").append("<b>Number of Nodes: </b>" + xpathResult.numberValue + "<br>"); 20: // NUMBER_TYPE = 1
21: // A result containing a single number. This is useful for example, in an XPath expression using the count() function.
22: $("#response").append("<b>Result Type: </b>" + xpathResult.resultType + "<br>"); 23: // //*[2] Selects every second child node of all the nodes
24: var xpathResult = xmlDoc.evaluate('//*[2]', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null); 25: // UNORDERED_NODE_ITERATOR_TYPE = 4
26: // A result node-set containing all the nodes matching the expression.
27: // The nodes may not necessarily be in the same order that they appear in the document.
28: $("#response").append("<b>Result Type: </b>" + xpathResult.resultType + "<br>"); 29: var result = xpathResult.iterateNext();
30: while (result) { 31: $("#response").append("<b>Child Node: </b>" + result.tagName + "<br>"); 32: result = xpathResult.iterateNext();
33: }