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; }; }