c#linq
を使用したXMLデータ処理を合理化します Linqのレバレッジをレバレッジすると、C#のXMLデータ操作が大幅に簡素化されます。 この例では、出力のXMLデータを効率的に読み取り、フォーマットする方法を示しています。 1。 XMLドキュメントの読み込み:プロセスは、XMLドキュメントをロードすることから始まります:
<code class="language-csharp">XDocument xdoc = XDocument.Load("data.xml");</code>
次に、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>
?.Value
3。出力のフォーマット:
最後に、抽出されたデータがフォーマットされ、出力が出力されます このループは結果を繰り返し、「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 サイトの他の関連記事を参照してください。