UNPKG

xpath2

Version:

DOM 3 XPath implementation (with XPath 2.0 language support)

51 lines (47 loc) 1.64 kB
var cAttr = require('./classes/Attr'); var cLXDOMAdapter = require('./classes/LXDOMAdapter'); var oMSXMLDOMAdapter = new cLXDOMAdapter; // oMSXMLDOMAdapter.getProperty = function(oNode, sName) { if (sName == "localName") { if (oNode.nodeType == 7) return null; if (oNode.nodeType == 1) return oNode.baseName; } if (sName == "prefix" || sName == "namespaceURI") return oNode[sName] || null; if (sName == "textContent") return oNode.text; if (sName == "attributes" && oNode.nodeType == 1) { var aAttributes = []; for (var nIndex = 0, oAttributes = oNode.attributes, nLength = oAttributes.length, oNode2, oAttribute; nIndex < nLength; nIndex++) { oNode2 = oAttributes[nIndex]; if (oNode2.specified) { oAttribute = new cAttr; oAttribute.nodeType = 2; oAttribute.ownerElement = oNode; oAttribute.ownerDocument = oNode.ownerDocument; oAttribute.specified = true; oAttribute.value = oAttribute.nodeValue = oNode2.nodeValue; oAttribute.name = oAttribute.nodeName = oNode2.nodeName; // oAttribute.localName = oNode2.baseName; oAttribute.prefix = oNode2.prefix || null; oAttribute.namespaceURI = oNode2.namespaceURI || null; // aAttributes[aAttributes.length] = oAttribute; } } return aAttributes; } // return cLXDOMAdapter.prototype.getProperty.call(this, oNode, sName); }; // Document object members oMSXMLDOMAdapter.getElementById = function(oDocument, sId) { return oDocument.nodeFromID(sId); }; module.exports = oMSXMLDOMAdapter;