Какие классы в .Net помогают упростить работу с XML файлами? Например, поиск определённого тега или дописывание атрибута к тегу, навигация по XML файлу и т.д.
классы XmlDocument, XmlNode, XmlTextReader, XmlTextWriter, XPathDocument, XPathNavigator и другие.
Также можете посмотреть пространства имён System.Xml и System.Xml.XPath
XmlDocument - позволяет загрузить в себя XML файл и считать его содержимое через свойства
var document = new XmlDocument();
document.Load("text.xml");
Console.WriteLine(document.InnerText); // выведет только внутренний текст тегов
Console.WriteLine(document.InnerXml); // выведет весь XML файл
XmlTextReader - позволяет потегово считать XML файл, например:
FileStream stream = new FileStream("text.xml", FileMode.Open);
XmlTextReader xmlReader = new XmlTextReader(stream);
while (xmlReader.Read())
{
Console.WriteLine("NodeType: {0} Name: {1} Value: {2}", xmlReader.NodeType, xmlReader.Name, xmlReader.Value);
}
xmlReader.Close();
stream.Close();
через свойства (NodeType
, Name
, Value
, ...) можно получить различную информацию о теге (его тип, имя ...)
XmlNode - позволяет записать в себя всю информацию о теге (включая и информацию о его внутренних тегах)
var document = new XmlDocument();
document.Load("text.xml");
XmlNode root = document.DocumentElement;
Console.WriteLine("document.DocumentElement = {0}\n", root.LocalName);
foreach (XmlNode item in root.ChildNodes)
{
Console.WriteLine("Found Child:");
foreach (XmlNode child in item.ChildNodes)
{
Console.WriteLine(сhild.Name + ": " + сhild.InnerText);
}
}
XmlTextWriter - позволяет информацию в XML файл
var xmlWriter = new XmlTextWriter("text.xml", null);
xmlWriter.WriteStartDocument(); // Заголовок XML
xmlWriter.WriteStartElement("MyFile"); // Корневой элемент
xmlWriter.WriteStartElement("Element");
xmlWriter.WriteStartAttribute("attribute"); // Атрибут - attribute
xmlWriter.WriteString("123"); // ="8"
xmlWriter.WriteEndAttribute(); //
xmlWriter.WriteString("Element.text"); // текст в таге Element
xmlWriter.WriteEndElement(); // </Element>
xmlWriter.WriteEndElement(); // </MyFile>
xmlWriter.Close();
XPathDocument и XPathNavigator - работают также как в любом ХPath