0
在之前关于如何使用Linq到XML的问题上,我提供了一些帮助,而且我几乎可以使用它,但是我一直在使嵌套工作正常工作。请记住,这是我第一次使用LINQ,所以我是一个完整的新手。我有一个xml文件,它以流的形式进入Web应用程序。 XML是非常简单的,基本上遵循以下格式:修改LINQ to XML语句以从嵌套xml中获取特定数据
<root>
<people>
<person>
<StuffToGet1>
<StuffToGet2>
...
<StuffToGetPARENT>
<useless1>
<useless2>
...
<StuffToGetChild1>
<StuffToGetChild2>
</StuffToGetPARENT>
</person>
</people>
</root>
很显然,我有得到的东西得到的是在顶层没有问题。目前,我的Linq正在拉回所有事情。我想在子查询上过滤该选择以忽略StuffToGetChild标记中没有的所有内容。标签将被命名为相同的东西(不是Brand1,Brand2等)。以下是我到目前为止...请帮助!
XDocument xdoc = XDocument.Load(XmlReader.Create(responseStream));
var People = from Person in xdoc.Descendants("Person")
where Person.Element("Role").Value != "Admin"
orderby Specialist.Element("Role").Value
select new
{
StuffToGet1 = Person.Element("StuffToGet1").Value,
StuffToGet2 = Person.Element("StuffToGet2").Value,
Brand = Person.Element("StuffToGetPARENT").Value
};
gvTest.DataSource = People;
gvTest.DataBind();
编辑:我刚刚意识到我说的这可能有点混乱。 “品牌”实际上是“StuffToGetChild”标签中的内容。抱歉混淆。
我不知道我是否正确理解你。在Brand属性中,您希望分配一些对象集合,这些对象集合将从StuffToGetChild1,StuffToGetChild2标签创建 – Michal
正确。大多数的XML是非常自上而下的东西,一个层次。在StuffToGetPARENT标签中,有一堆无用的子标签,我不需要。然后你会得到一些“品牌”子标签,其中包含我需要的信息。我不知道返回它的最佳方式,列表或集合,我不确定我是否与LINQ一起工作 – optionsix