I created an XML wrapper to easily access XML data. Please tell me what do you think about it.
- Performance
- Scalability
- Anything else...
This is how you use it:
var xml = new Xml(dataString);
xml.load("UserEmail");
alert(xml.length + ", " + xml.getValueAt(0)); // Out: 2, [email protected]
XML source file:
<Users>
<Users>
<UserEmail>[email protected]</UserEmail>
<UserPassword>
BA56E5E0366D003E98EA1C7F04ABF8FCB3753889
</UserPassword>
</Users>
<Users>
<UserEmail>[email protected]</UserEmail>
<UserPassword>
07B7F3EE06F278DB966BE960E7CBBD103DF30CA6
</UserPassword>
</Users>
</Users>
Source:
function Xml(xmlString) {
var parser = function() {
if (typeof window.DOMParser != "undefined") {
return (new window.DOMParser()).parseFromString(xmlString,
"text/xml");
}
else if (typeof window.ActiveXObject != "undefined"
&& new window.ActiveXObject("Microsoft.XMLDOM")) {
var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlString);
return xmlDoc;
}
else {
throw new Error("XML parser not found");
}
};
var data = parser(xmlString);
var elements = null;
this.length = 0;
this.load = function(nodeName){
elements = data.documentElement.getElementsByTagName(nodeName);
this.length = elements.length;
};
this.getValueAt = function(index) {
if(!elements || index >= this.length){
return null;
}
var element = elements.item(index);
return element.childNodes[0].data;
};
}