Как прочитать XML документ с тэгами и атрибутами подобного рода - C#
Формулировка задачи:
Добрый день!
Имеется документ XML вида:
Как спарсить все значения и между тэгами, и то, что в атрибутах?
Удается пока только спарсить то, что между тэгами из-за большой вложенности тэгов
На выходе необходимо, чтобы было что-то вроде:
<?xml version="1.0" encoding="utf-8" ?> <blocks> <block number"123"> <pages> <page number="1" format="2"> <area> <area>1769</area> <unit>055</unit> </area> <category>003002000000</category> </page> <page number="2" format="3"> <area> <area>1222</area> <unit>053</unit> </area> <category>003002000000</category> </page> <page number="3" format="4"> <area> <area>1231</area> <unit>054</unit> </area> <category>003002000000</category> </page> </pages> <block> </blocks>
void LoadXML() { XmlDocument xDoc = new XmlDocument(); xDoc.Load("doc.xml"); XmlElement xRoot = xDoc.DocumentElement; XmlNodeList childnodes = xRoot.SelectNodes("blocks"); foreach (XmlNode xnode in xRoot) { foreach (XmlNode childnode in xnode.ChildNodes) { if (childnode.Name == "block") { richTextBox1.Text += childnode.InnerText; } } } }
123
1 2 1769 055 00300200000
2 3 1222 053 00300200000
3 4 1231 054 00300200000
Решение задачи: «Как прочитать XML документ с тэгами и атрибутами подобного рода»
textual
Листинг программы
string xml = Resources.file; XDocument doc = XDocument.Parse(xml); foreach (var block in doc.Root.Elements("block")) { Debug.WriteLine((string)block.Attribute("number")); foreach (var page in block.Descendants("page")) { Debug.WriteLine( "{0} {1} {2} {3} {4} {5}", (string)page.Attribute("number"), (string)page.Attribute("number"), (string)page.Attribute("format"), (string)page.Element("area").Element("area"), (string)page.Element("area").Element("unit"), (string)page.Element("category")); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д