ホームページ > バックエンド開発 > C++ > Linqは、C#のXMLデータの解析と階層出力をどのように単純化できますか?

Linqは、C#のXMLデータの解析と階層出力をどのように単純化できますか?

Susan Sarandon
リリース: 2025-01-30 05:06:11
オリジナル
589 人が閲覧しました

How Can LINQ Simplify XML Data Parsing and Hierarchical Output in C#?

C# 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>
ログイン後にコピー

linqベースのソリューション
<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>
ログイン後にコピー

コードは、

    linqクエリは、
  • ノードとそれに対応するXDocument.Load子ノードを効率的に選択します。
  • は、潜在的なnull属性値を優雅に処理します。
  • level1その後、結果が反復され、階層構造が文字列操作を使用して構築され、適切なインデントが確保されます。 level2 これは、LINQがXMLの解析を単純化する方法を示し、C#で目的の階層出力を生成するための簡潔な方法を提供します。 パフォーマンスを向上させるために?.Valueの使用は文字列の連結を最適化します。

以上がLinqは、C#のXMLデータの解析と階層出力をどのように単純化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート