This commit is contained in:
Josh Johnson 2016-01-18 08:53:42 -05:00
parent 65fca7bdf4
commit c6efe2a2dd
3 changed files with 18 additions and 2 deletions

View file

@ -5,10 +5,18 @@ import * as xpath from 'xpath';
let DOMParser = require('xmldom').DOMParser;
export class XPathEvaluator {
static evaluate(query: string, xml: string): Node[] {
static evaluate(query: string, xml: string, ignoreDefaultNamespace: boolean): Node[] {
if (ignoreDefaultNamespace) {
xml = xml.replace(/xmlns=".+"/g, (match: string) => {
return match.replace(/xmlns/g, 'xmlns:default');
});
}
let nodes: Node[] = new Array<Node>();
let xdoc: Document = new DOMParser().parseFromString(xml, 'text/xml');
console.log(xdoc);
let resolver: xpath.XPathNSResolver = xpath.createNSResolver(xdoc);
let expression: xpath.XPathExpression = xpath.createExpression(query, resolver);
let result: xpath.XPathResult = expression.evaluate(xdoc, xpath.XPathResult.ORDERED_NODE_ITERATOR_TYPE);