ホームページ > バックエンド開発 > C++ > linqは、XMLデータをC#の読み取りとフォーマット化にどのように単純化できますか?

linqは、XMLデータをC#の読み取りとフォーマット化にどのように単純化できますか?

DDD
リリース: 2025-01-30 05:16:08
オリジナル
840 人が閲覧しました

How Can LINQ Simplify Reading and Formatting XML Data in C#?

c#linq

を使用したXMLデータ処理を合理化します Linqのレバレッジをレバレッジすると、C#のXMLデータ操作が大幅に簡素化されます。 この例では、出力のXMLデータを効率的に読み取り、フォーマットする方法を示しています。

1。 XMLドキュメントの読み込み:

プロセスは、XMLドキュメントをロードすることから始まります:

<code class="language-csharp">XDocument xdoc = XDocument.Load("data.xml");</code>
ログイン後にコピー
2。レベル1およびレベル2の要素の抽出:

次に、LINQクエリが「level1」要素と関連する「レベル2」の子供を抽出します:

このクエリは、データを「level1」ヘッダーと「level2」名のコレクションを含む匿名タイプに投影します。

は、潜在的なnull属性を優雅に処理します。
<code class="language-csharp">var lv1Elements = from lv1 in xdoc.Descendants("level1")
                  select new
                  {
                      Header = lv1.Attribute("name")?.Value,
                      Children = lv1.Descendants("level2").Select(lv2 => lv2.Attribute("name")?.Value)
                  };</code>
ログイン後にコピー

?.Value3。出力のフォーマット:

最後に、抽出されたデータがフォーマットされ、出力が出力されます このループは結果を繰り返し、「level1」ヘッダーとインデント「レベル2」名を

に追加します。

<code class="language-csharp">StringBuilder output = new StringBuilder();
foreach (var lv1 in lv1Elements)
{
    output.AppendLine(lv1.Header);
    foreach (var lv2 in lv1.Children)
    {
        output.AppendLine("     " + lv2);
    }
}

Console.WriteLine(output.ToString());</code>
ログイン後にコピー
完全な例:

StringBuilder

ここに完全な洗練されたコードがあります:

この改良されたバージョンには、堅牢性のためにnullチェックが組み込まれ、効率的な文字列連結にaを使用します。 LINQアプローチは、C#。

以上がlinqは、XMLデータをC#の読み取りとフォーマット化にどのように単純化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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