【发布时间】:2013-06-20 16:32:49
【问题描述】:
是否可以使用一个 LINQ 查询同时返回所有元素和子元素的值?使用下面的查询,我可以检索第一个元素,但不能检索子元素。
var query = from c in xDoc.Descendants("file")
orderby c.Name
select new
{
// This gets the main elements
Name = (string)c.Element("name").Value,
};
XML 文件如下所示:
<files>
<file id="1">
<name>A file</name>
<processDetails>
<purpose>It's supposed to get files.</purpose>
<filestoProcess>
<file>alongfile.pgp</file>
<file>Anotherfile.pgp</file>
<file>YetAnotherfile.CSV</file>
</filestoProcess>
<schedule>
<day>Mon</day>
<day>Tue</day>
<time>9:00am</time>
</schedule>
<history>
<historyevent>Eh?</historyevent>
<historyevent>Two</historyevent>
</history>
</processDetails>
</file>
<files>
此外,一旦检索到,我将如何访问子元素以填充列表框和/或文本框?
【问题讨论】:
-
您的示例 XML 不包含任何
<script>元素。当代码与示例数据不匹配时,很难为您提供帮助。同样,您谈论了多个name元素,但您只展示了一个......而且您也不清楚您想要的结果是什么。 (顺便说一句,当您只有一个属性时,为什么要使用匿名类型?) -
假设 script==file 你仍然需要以什么形式指明你需要哪些子元素。
-
您的结束
<files>标签中没有/ -
您需要给出所需输出的示例。
标签: c# xml linq-to-xml