【问题标题】:Multiple element name xml parsing多元素名称xml解析
【发布时间】:2016-05-21 01:58:57
【问题描述】:

我正在尝试使用 Linq 解析 xml 文件:

XML 结构似乎都是通过属性而不是元素名称完成的。一切都是一个条目,我想获取具有特定条目名称的所有条目,例如“数据”:下面的示例数据。

<entry name="data">
<entry name="001" description="Player LEFT">
  <entry name="001"  description="Player LEFT" type="richtext">Joe Bloggs</entry>
</entry>
<entry name="002" description="Team LEFT">
  <entry name="002"  description="Team LEFT" type="richtext">Stack Overflow</entry> 
</entry>

可能有 2 个条目或 100 个,所以在这种情况下,我需要返回“数据”属性下的所有内容。

目前我拥有的是:

XDocument doc = XDocument.Load(@"D:\element1.xml");
var stuff = doc.Descendants("entry").Where(x => 
(string)x.Attribute("data") == "data").ToList();

我可以获得特定的值,但不是全部。

【问题讨论】:

  • 你所说的“具体值但不是全部”是什么意思?你能举个例子说明这会返回什么以及你希望它返回什么吗?
  • 发布示例 XML,演示您当前的代码如何失败(如果当前发布的 XML 没有失败)。指示您期望得到什么以及使用该代码实际得到什么。谢谢

标签: c# xml linq linq-to-xml


【解决方案1】:

我将对此进行尝试。以下内容是否符合您的要求?

doc
.Descendants()
.Where(x => (string)x.Attribute("name") == "data")
.Descendants();

【讨论】:

  • 谢谢杰森!刺伤有效。我添加了 .Descendants().Elements("entry").ToList();这给了我想要解析到我自己的课程中的所有内容。干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 2018-05-18
相关资源
最近更新 更多