selectNodes method takes XPATHexpression as argument andreturns arrayof selectednodes with all attributes
var softXMLLib= new SoftXMLLib();
var xmlString = "<root>";
xmlString +="<person id='1' weight='100kg' height='180cm'>";
xmlString +="<FirstName>Gregory</FirstName>";
xmlString +="<LastName>Movsesyan</LastName>";
xmlString +="<Email ext='international'>webmaster@softxml.com</Email>";
xmlString +="</person>";
xmlString +="<person id='2' weight='67kg' height='167cm'>";
xmlString +="<FirstName>Michal</FirstName>";
xmlString +="<LastName>Doyan</LastName>";
xmlString += "<Email ext= 'local'>webmaster@test.com</Email>"; xmlString + = "</person>"; xmlString += "</root>";
softXMLLib.loadXML(xmlString);if(softXMLLib.loadXMLError!=0){
alert("Invalid XML string!");
}
else{
fnames = softXMLLib.selectNodes("//FirstName");
for(i=0;i<fnames.length;i++) {
alert(fnames[i].innerText);
//Will output "Gregory","Michal"
alert(fnames[i].self.getElementsByTagName("LastName")[0].childNodes[0].nodeValue);
//Will output "Movsesyan","Doyan"
}
persons = softXMLLib.selectNodes("//person");
for(i=0;i<persons.length;i++) {
alert(persons[i].attributes[0].id);
//Will output "1","2"
alert(persons[i].attributes[0].weight);
//Will output "100kg","67kg"
alert(persons[i].self.getElementsByTagName("Email")[0].childNodes[0].nodeValue);
alert(persons[i].self.getElementsByTagName("Email")[0].getAttribute("ext"));
//Will output "international","local"
}
}