【发布时间】:2011-11-21 14:41:34
【问题描述】:
我在较早的一个关于如何使用 Linq to XML 的问题中得到了帮助,我几乎可以让它工作,但我坚持让嵌套正常工作。请记住,这是我第一次使用 LINQ,所以我完全是新手。我有一个 xml 文件,它作为流进入 Web 应用程序。 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 标签创建??
-
正确。大多数 xml 都是自上而下的东西,只有一层。在 StuffToGetPARENT 标签内,有一堆没用的子标签,我不需要。然后你会得到一些“品牌”子标签,其中包含我需要的信息。我不知道返回它的最佳方式,列表或集合,我不确定我是使用 LINQ 的新手
标签: .net xml linq xml-serialization linq-to-xml