Считать документ XML с диска, а затем представить его как дерево - C#
Формулировка задачи:
Здравствуйте, я новичок. Язык C#
Задача в том, чтобы считать документ doc1.xml с диска, а затем представить его как дерево и это дерево записать в виде массива строк, где каждая строка есть путь от корня дерева до конкретного листа.
То есть, к примеру, документ должен быть представлен в виде набора из трех строк
a/b/c/Info_C
a/b/e/Info_E
a/d/Info_D
Причем я не уверен, что разделять теги в строке нужно именно "/", можно спецсимвол какой придумать. Но тут пусть профессионалы посоветуют)
Все говорят, что это просто, но я три дня читал про всякие DOM структуры и XmlSerializer, жутко устал, но код в моей голове так и не сложился.
Нет ли вообще готовых решений по этой теме? Друзья, если кому это не трудно, напишите такую функцию, чтобы на вход принимала адрес документа на диске, а возвращала такой вот набор строк, это ведь вам всего 10 минут кодинга, а мне поможет очень) Или ссылку на готовую реализацию дайте.
Заранее благодарен всем откликнувшимся!
<?xml version="1.0" encoding="WINDOWS-1251"?> <a> <b> <c>Info_C</c> <e>Info_E</e> </b> <d>Info_D</d> </a>
Решение задачи: «Считать документ XML с диска, а затем представить его как дерево»
textual
Листинг программы
using System; using System.Collections.Generic; using System.IO; using System.Xml.Linq; namespace ConsoleApplication72 { class Program { static void Main(string[] args) { string s = @"<?xml version=""1.0"" encoding=""WINDOWS-1251""?> <a> <b> <c>Info_C</c> <e>Info_E</e> </b> <d>Info_D</d> </a>"; var doc = XDocument.Load(new StringReader(s)); foreach (var xPath in GetXPaths(doc.Root)) { Console.WriteLine(xPath); } Console.ReadKey(); } private static IEnumerable<string> GetXPaths(XElement element) { string localName = element.Name.LocalName; if (!element.HasElements) { yield return localName + "/" + element.Value; } else { foreach (var descendantNode in element.Elements()) { foreach (string xPath in GetXPaths(descendantNode)) { yield return localName + "/" + xPath; } } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д