使用linq to xml获取元素中的多个数据项

使用linq to xml获取元素中的多个数据项,xml,linq-to-xml,Xml,Linq To Xml,使用linq to xml获取元素中的多个数据项 我有一个这样的xml文件 <TopLevel> <Inside> Jibba </Inside> <Inside> Jabba </Inside> </TopLevel> 我尝试了c元素,但没有成功。我需要做什么才能获得所有的内部元素?这段代码只得到第一个“Inside”标记。这应该给你“Jibba”和“Jabba”;您需要对System.L

使用linq to xml获取元素中的多个数据项

我有一个这样的xml文件

<TopLevel>
  <Inside>
    Jibba
  </Inside>
  <Inside>
    Jabba
  </Inside>
</TopLevel>

我尝试了c元素,但没有成功。我需要做什么才能获得所有的内部元素?这段代码只得到第一个“Inside”标记。

这应该给你
“Jibba”
“Jabba”
;您需要对
System.Linq
System.Xml.Linq
使用
指令:

    var q = from c in loaded.Descendants("TopLevel").Elements("Inside")
            select c.Value;
或者(不太具体,但仍然有效):

或者,如果您想对元素进行更多操作,请选择many

    var q = from c in loaded.Descendants("TopLevel")
            from i in c.Elements("Inside")
            select i.Value;

(如果您想要元素,而不是字符串,那么只需
选择c;
选择i;
-删除
.Value

这将为您提供
“Jibba”
“Jabba”
;您需要对
System.Linq
System.Xml.Linq
使用
指令:

    var q = from c in loaded.Descendants("TopLevel").Elements("Inside")
            select c.Value;
或者(不太具体,但仍然有效):

或者,如果您想对元素进行更多操作,请选择many

    var q = from c in loaded.Descendants("TopLevel")
            from i in c.Elements("Inside")
            select i.Value;

(如果您想要的是元素,而不是字符串,那么只需
选择c;
选择i;
-删除
.Value

我需要更进一步,但不清楚如何做。谢谢你的支持。这里有一些额外的水果来节省一些劳力

提供了一些额外的xml乐趣:

<TopLevel>
    <Inside ident="one">Jibba</Inside>
    <Inside ident="two">Jabba</Inside>
    <Inside ident="one">AlsoJibba</Inside>
    <Inside ident="three">AlsoJabba</Inside>
</TopLevel>
然后对结果进行了一个小的演示控制台运行:

For each inside in query
    Console.WriteLine(inside)
Next
哪个输出:

Jibba
AlsoJibba
前方扰流板警报:

现在,如果你复制粘贴了我刚才所做的,并且像我一样使用VB,你会有一个特别恼人的细微差别。代码不起作用。请注意LINQ query.XML中的“.Elements”(“inside”)这一小部分是区分大小写的。VB完全不区分大小写。C#用户请随意忽略我们的年轻人。只是想演示一个where和一个gotcha


马特

我需要更进一步,但不清楚该怎么做。谢谢你的跳转点。这里有一些额外的水果可以节省一些劳力

提供了一些额外的xml乐趣:

<TopLevel>
    <Inside ident="one">Jibba</Inside>
    <Inside ident="two">Jabba</Inside>
    <Inside ident="one">AlsoJibba</Inside>
    <Inside ident="three">AlsoJabba</Inside>
</TopLevel>
然后对结果进行了一个小的演示控制台运行:

For each inside in query
    Console.WriteLine(inside)
Next
哪个输出:

Jibba
AlsoJibba
前方扰流板警报:

现在,如果你复制粘贴了我刚才所做的,并且像我一样使用VB,你会有一个特别恼人的细微差别。代码不起作用。请注意LINQ查询中的“.Elements”(“inside”)小部分。XML区分大小写。VB不区分大小写。C#用户请随意忽略我们的青春。只是想展示一个where和一个gotcha

马特