Как прочитать 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"));
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д