Tengo este XML
Código XML:
Ver original
<?xml version="1.0" encoding="UTF-8"?> <RAIZ> <tag>ejemplillos</tag> <tag2>hola</tag2> <tag3> <a = "23" b= "101" c= "beautiful" /> <a= "24" b= "102" c= "beautiful" /> <a= "25" b= "103" c= "beautiful" /> </tag3> </RAIZ>
Lo que quiero es crear un Hashtable que me vaya guardando en su interior los atributos del tag3, que tiene 3 llamados a, para ello tengo:
[HIGHLIGHT="C"]
Código C:
Ver original
XmlTextReader xmlReader = new XmlTextReader("C:\\\\Documents\\....xml"); xmlReader.Read(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(xmlReader); Hashtable Hush = new Hashtable(); XmlNodeList no = xmlDoc.SelectNodes("/RAIZ/tag3/a"); for (int j = 0; j < no.Count; j++) { //Console.WriteLine(no.Count); //Console.ReadKey(); Hush.Add(no[j].Attributes["a"].Name, no[j].Attributes["a"].Value); Hush.Add(no[j].Attributes["b"].Name, no[j].Attributes["b"].Value); Hush.Add(no[j].Attributes["c"].Name, no[j].Attributes["c"].Value); }
ósea, lo que quiero es que el hash me vaya guardando el nombre del atributo y el valor de cada uno de los 3 nodos que hay, esto es:
a = 23
b=101
c=beautiful
a=24
b=102
c=beautiful
a=25
b=103
c=beautiful
pero, con este bucle lo que hago es que una vez me ha cargado a,b,c del primero nodo, al llegar al segundo, me dice que no puede añadir porque ya lo hizo, es decir, no sé cómo decirle al bucle que una vez que llena el primer c, empiece a llenar el segundo a y no que vuelva a llenar el a del primer nodo.
¿alguna idea?