linq to XML:XMLデータ処理への強力なアプローチ
.NETのLINQからXMLは、XMLデータを処理するエレガントで効率的な方法を提供します。 C#を使用して、ネストされた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>
linqをxml で解析します
を使用してXMLをロードすることから始めます。 次に、linqクエリはXDocument.Load()
ノードとその「名前」属性を選択します:level1
<code class="language-csharp">XDocument xdoc = XDocument.Load("data.xml"); var level1Nodes = from level1 in xdoc.Descendants("level1") select level1.Attribute("name").Value;</code>
ネストされたレベル2ノードへのアクセス ネストされた
ノードにアクセスするには、ネストされたループを使用します。 外側のループの内部(を繰り返します)、2番目のlinqクエリフィルターlevel2
ノードは、親の「名前」属性に基づいています。
level1Nodes
level2
インデント( "")は、レベル2を出力のレベル1ノードと区別します。
<code class="language-csharp">foreach (var level1 in level1Nodes) { Console.WriteLine(level1); var level2Nodes = from level2 in xdoc.Descendants("level2") where level2.Parent.Attribute("name").Value == level1 select level2.Attribute("name").Value; foreach (var level2 in level2Nodes) { Console.WriteLine(" " + level2); } }</code>
これが完全な機能コードスニペットです: これは、クリーンで読みやすいC#コードベース内の複雑なXML構造を解析およびフォーマットするためのlinqのXMLへのパワーと効率を示しています。
以上がlinqからXMLからXMLデータのネストされたデータを効率的に解析し、フォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。