TOC

This article has been localized into German by the community.

XML:

Mit der XmlNode-Klasse arbeiten

Im vorherigen Kapitel haben wir die Klasse XmlDocument verwendet, um eine XML-Datei zu analysieren. In dem Beispiel wurde eine neue Klasse eingeführt, die für das Parsen von XML mit XmlDocument sehr wichtig ist: Die Klasse XmlNode. Das XML wird im Grunde genommen in einen XmlNode geparst, der das Wurzelelement ist, und dann können Sie über die ChildNodes-Eigenschaft auf die Child-Elemente zugreifen. Die Klasse XmlNode gibt Ihnen jedoch auch Zugriff auf viele andere Informationen, z.B. den Namen des Tags, die Attribute, den inneren Text und das XML selbst. Dieses Kapitel ist eine kurze Beschreibung einiger der interessanteren Aspekte der XmlNode-Klasse. Diese Klasse ist wichtig, da die XmlNode-Klasse ein solches Schlüsselkonzept beim Parsen von XML mit der Klasse XmlDocument ist. In den folgenden Beispielen werden wir das DocumentElement oft verwenden, und obwohl es in der Tat vom Typ XmlElement ist, erbt XmlElement von XmlNode, also ist es im Grunde dasselbe.

Die Eigenschaft Name gibt Ihnen einfach den Namen des Knotens. Im folgenden Beispiel wird beispielsweise der Text "user" ausgegeben:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<user name=\"John Doe\">A user node</user>");
Console.WriteLine(xmlDoc.DocumentElement.Name);
Console.ReadKey();

Die InnerText-Eigenschaft enthält den Text, der zwischen Start- und End-Tag enthalten ist, wie folgt:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<test>InnerText is here</test>");
Console.WriteLine(xmlDoc.DocumentElement.InnerText);
Console.ReadKey();

Die InnerXml-Eigenschaft ist ein wenig wie die InnerText-Eigenschaft, aber während InnerText jedes XML in ihr entfernt, macht die InnerXml-Eigenschaft es offensichtlich nicht. Das folgende Beispiel soll den Unterschied verdeutlichen:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<users><user>InnerText/InnerXml is here</user></users>");
Console.WriteLine("InnerXml: " + xmlDoc.DocumentElement.InnerXml);
Console.WriteLine("InnerText: " + xmlDoc.DocumentElement.InnerText);
Console.ReadKey();

Die OuterXml-Eigenschaft ist die gleiche wie die InnerXml, enthält aber auch das XML des Knotens selbst. Das folgende Beispiel soll den Unterschied verdeutlichen:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<users><user>InnerText/InnerXml is here</user></users>");
Console.WriteLine("InnerXml: " + xmlDoc.DocumentElement.InnerXml);
Console.WriteLine("OuterXml: " + xmlDoc.DocumentElement.OuterXml);
Console.ReadKey();

Wir haben im vorherigen Kapitel mit Attributen gearbeitet, aber hier ist ein weiteres Beispiel:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<user name=\"John Doe\" age=\"42\"></user>");
if(xmlDoc.DocumentElement.Attributes["name"] != null)
    Console.WriteLine(xmlDoc.DocumentElement.Attributes["name"].Value);
if(xmlDoc.DocumentElement.Attributes["age"] != null)
    Console.WriteLine(xmlDoc.DocumentElement.Attributes["age"].Value);
Console.ReadKey();

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!