Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // $XA
- //
- // $XA(exp, context, resolver)(function(node){});
- function $XA(exp, context, resolver) {
- context || (context = document);
- var XPE = new XPathEvaluator();
- var Doc = context.ownerDocument || context, expr = XPE.createExpression(exp, resolver ? resolver :
- Doc.documentElement.namespaceURI ? function(prefix) {
- return XPE.createNSResolver(Doc.documentElement).lookupNamespaceURI(prefix) ||
- context.namespaceURI || document.documentElement.namespaceURI || "";
- } : null);
- var result = expr.evaluate(context, XPathResult.ANY_TYPE, null);
- switch (result.resultType) {
- case XPathResult.STRING_TYPE : return function(fnc,thisObject) {fnc.call(thisObject,result.stringValue);};
- case XPathResult.NUMBER_TYPE : return function(fnc,thisObject) {fnc.call(thisObject,result.numberValue);};
- case XPathResult.BOOLEAN_TYPE: return function(fnc,thisObject) {fnc.call(thisObject,result.booleanValue);};
- case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
- result = expr.evaluate(context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, result);
- return function(fnc, thisObject) {
- for (var i = 0, len = result.snapshotLength; i < len; i++) {
- fnc.call(thisObject, result.snapshotItem(i));
- }
- };
- }
- return null;
- }
Add Comment
Please, Sign In to add comment