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 😕
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.
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 😃