Det er ikke valid XML, du har skrevet. Til en start skal du have en XML-prolog og derefter et documentElement - f.eks:
<?xml version="1.0" encoding="iso-8859-1"?>
<dataset>
</dataset>
- derefter kan du fylde elementer i, men det er meget vigtigt, de er korrekt nestede:
<?xml version="1.0" encoding="iso-8859-1"?>
<dataset>
<feed type="order">
<category name="test">
<info>
<id>20489</id>
<name>Henrik</name>
<adress>test</adress>
<zip>0000</zip>
<telefone>any</telefone>
<country>DK</country>
</info>
</category>
</feed>
<feed type="order">
<category name="test">
<info>
<id>20490</id>
<name>Børge</name>
<adress>test</adress>
<zip>0001</zip>
<telefone>same here</telefone>
<country>DK</country>
</info>
</category>
</feed>
<feed type="order">
<category name="test">
<info>
<id>20491</id>
<name>Henrik</name>
<adress>test</adress>
<zip>0002</zip>
<telefone>another one</telefone>
<country>DK</country>
</info>
</category>
</feed>
</dataset>
- så har dit XML-dokument et documentElement med tagName 'dataset'. Dette element har tre child-elementer.
Med den struktur, jeg har brugt her, kan du finde noderne på denne måde:
<script type="text/javascript" for="window" event="onload" >
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false";
xmlDoc.load("mobil.xml");
var a = xmlDoc.selectNodes("/dataset/feed[category/info/name='Henrik']");
var s = "";
for (i=0; i<a.length; i++) {
s += "Navn: " + a[i].selectSingleNode("category/info/name").text + "\n";
s += "Postnummer: " + a[i].selectSingleNode("category/info/zip").text + "\n";
s += "Telefon: " + a[i].selectSingleNode("category/info/telefone").text + "\n";
s += "------------------------------\n";
}
alert(s)
</script>
Det er den metode, der kaldes XPath. Du kan evt læse mere her:
http://www.w3schools.com/xpath/default.asp- og ikke mindst her:
http://www.w3schools.com/xpath/xpath_syntax.aspDu kan altid teste, om dit XML-dokument er korrekt ved at trække det ind i et browservindue - eller kalde det i en browser. Er dokumentet ikke iorden, vil du få en XML-fejl.