我需要一些有关 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 和 Value。在不使用 foreach 或嵌套的 foreach 循环的情况下如何解决这个问题?
谢谢