Laden...

[XML] Problem bei der Nutzung von XmlReader.MoveToNextAttribute()

Erstellt von animet vor 11 Jahren Letzter Beitrag vor 11 Jahren 780 Views
A
animet Themenstarter:in
7 Beiträge seit 2012
vor 11 Jahren
[XML] Problem bei der Nutzung von XmlReader.MoveToNextAttribute()

verwendetes Datenbanksystem: <XML>

Hey, ich habe folgenden Code vorliegen:


                XmlReader xReader = XmlReader.Create(path);
                while (xReader.Read())
                {
                    if (xReader.Name == NodeName && xReader.HasAttributes) //"Tex"
                    {
                        XmlNode xNode = xmlDoc.CreateElement(xReader.Name);
                        xNode.InnerText = xReader.ReadElementString(xNode.Name);
                        while(xReader.MoveToNextAttribute())
                        {
                            XmlAttribute xaAttrib = xmlDoc.CreateAttribute(xReader.Name);
                            xaAttrib.InnerText = xReader.Value;
                            xNode.Attributes.Append(xaAttrib);
                            MessageBox.Show(xReader.Name+"="+xReader.Value);
                        }
                        String str = "";
                        for (int x = 0; x < xNode.Attributes.Count; x++)
                        {
                            str+=xNode.Attributes[x].Name+"="+xNode.Attributes[x].InnerText+";";
                        }
                        MessageBox.Show("Nodename: "+xNode.Name + " innerText: " + xNode.InnerText+"\nAttributes: "+str);
                        NodeList.Add(xNode);
                    }
                }

So meine Frage ist warum er nicht in die while Schleife mit dem xReader.MoveToNextAttribute reingeht.
Er zeigt mit die MsgBox daraus nicht an, nur die untere, aber ohne, das dort iwelche
Attribute angezeigt werden. Sry ich hock schon einige Zeit davor seh aber das Problem nicht 😕

849 Beiträge seit 2006
vor 11 Jahren

Hallo,

vermutlich weil MoveToNextAttribute() false zurück liefert. Aber ohne das Quell Xml, und zu wissen an welcher Stelle Du was erwartest.. wird das schwierig.

A
animet Themenstarter:in
7 Beiträge seit 2012
vor 11 Jahren

Hey, also MoveToNextAttribute hat true zurückgegeben.
Irgendwie gab es ein Problem mit:

 xNode.InnerText = xReader.ReadElementString(xNode.Name);

Deshalb hab ich das was im InnerText der XmlNode stand, einfach zu einem
Attribut gemacht und dann gabs auch keine Fehler mehr 😃