This article has been localized into Czech by the community.
Práce s třídou XmlNode
V předchozí kapitole jsme použili třídu XmlDocument k parsování XML souboru. V příkladu byla představena nová třída, která je velmi důležitá pro parsování XML s XmlDocument: Třída XmlNode. XML je v podstatě parsováno do XmlNode, který je kořenovým prvkem, a poté můžete přistupovat k podřízeným prvkům pomocí vlastnosti ChildNodes. Třída XmlNode vám však poskytuje přístup k mnoha dalším informacím, například k názvu tagu, atributům, vnitřnímu textu a samotnému XML. Tato kapitola je stručným popisem některých z nejzajímavějších aspektů třídy XmlNode, což je důležité znát, protože třída XmlNode je tak klíčovým konceptem při parsování XML s třídou XmlDocument. V následujících příkladech budeme hodně používat DocumentElement, a i když je ve skutečnosti typu XmlElement, XmlElement dědí z XmlNode, takže je to v podstatě totéž.
Vlastnost Name vám jednoduše dá název uzlu. Například následující příklad vypíše text "user":
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<user name=\"John Doe\">A user node</user>");
Console.WriteLine(xmlDoc.DocumentElement.Name);
Console.ReadKey();
Vlastnost InnerText obsahuje text umístěný mezi počátečním a koncovým tagem, jako v tomto příkladu:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<test>InnerText is here</test>");
Console.WriteLine(xmlDoc.DocumentElement.InnerText);
Console.ReadKey();
Vlastnost InnerXml je trochu podobná vlastnosti InnerText, ale zatímco InnerText odstraní veškeré XML uvnitř, vlastnost InnerXml to samozřejmě neudělá. Následující příklad by měl ilustrovat rozdíl:
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();
Vlastnost OuterXml je stejná jako InnerXml, ale zahrne také XML samotného uzlu. Následující příklad by měl ilustrovat rozdíl:
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();
S atributy jsme pracovali v předchozí kapitole, ale zde je další příklad:
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();