LINQ と XML について助けが必要です。私は数多くの記事を読みましたが、ほとんどの人が結果をループして値を取得しているため、探しているものが見つからないようです。次の XML があり、最初にセクション名に基づいて、次にコントロール idに基づいて特定の要素にアクセスする必要があります。
<formData>
<section name="SectionA">
<control id="Textbox1" type="TextBox">
<value>Value1</value>
</control>
<control id="Textbox2" type="TextBox">
<value>Value2</value>
</control>
<control id="Textbox3" type="TextBox">
<value>Value2</value>
</control>
</section>
<section name="SectionB" />
<section name="SectionC" />
<section name="SectionD" />
<section name="SectionE" />
</formData>
次のコードを使用して、必要な要素を取得しています。
IEnumerable<XElement> fields = xDocument.Element("formData").Elements("section")
.Where(m => m.Attribute("name").Value == "SectionA")
.Single()
.Elements("control")
.Where(f => f.Attribute("id").Value == "Control1");
これにより、次の要素が生成されます。
<control id="Textbox1" type="TextBox">
<value>Value1</value>
</control>
ただし、それは私が得ることができる限りです... ID、TYPE、および値の 3 つの個別の値が必要です。foreach またはネストされた foreach ループを使用せずにこれを行うにはどうすればよいですか?
ありがとうございました