在C#
> 中,利用LINQ的LINQ
>c#開發人員經常遇到XML數據處理挑戰。 LINQ提供了一種優雅的解決方案,用於有效的XML解析和結構化輸出。讓我們用一個示例XML文件來說明這一點:
<code class="language-xml"><root><level1 name="A"><level2 name="A1"></level2><level2 name="A2"></level2></level1><level1 name="B"><level2 name="B1"></level2><level2 name="B2"></level2></level1><level1 name="C"></level1></root></code>
我們的目標是生成此數據的層次表示:
<code>A A1 A2 B B1 B2 C</code>
>
以下C#代碼利用LINQ實現此層次結構輸出:
<code class="language-csharp">using System.Xml.Linq; using System.Text; public class XmlParser { public static void Main(string[] args) { StringBuilder output = new StringBuilder(); // Load the XML document XDocument xmlDoc = XDocument.Load("data.xml"); // LINQ query to extract hierarchical data var level1Nodes = from level1 in xmlDoc.Descendants("level1") select new { Name = level1.Attribute("name")?.Value, Level2Nodes = level1.Descendants("level2").Select(level2 => level2.Attribute("name")?.Value) }; // Format and output the data foreach (var level1 in level1Nodes) { output.AppendLine(level1.Name); foreach (var level2 in level1.Level2Nodes) { output.AppendLine(" " + level2); } } Console.WriteLine(output.ToString()); } }</code>
代碼開始使用
。XDocument.Load
優雅地處理潛在的null屬性值。 level1
level2
>這說明了LINQ如何簡化XML解析,並提供了一種在C#中生成所需層次輸出的簡潔方法。 使用?.Value
優化字符串串聯以提高性能。 以上是LINQ如何簡化C#中的XML數據解析和分層輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!