c# - 使用 XML 获取所有同名元素的内容?

标签 c# .net xml xml-parsing linq-to-xml

我正在尝试在我的程序中解析一些 XML,但我似乎无法找到执行此操作的最佳方法。

XML 有一个称为“容器”的元素。该元素有多个称为“文本”的后代。我想做的是按顺序提取“文本”元素中的值,并将它们保存在字符串中。

所以 XML 看起来像:

<containers>
   <container>
      <elt3243> </elt3243>
      <elt1122></elt1122>
      <elt><text> Put me in a string please </text> </elt>
      <elt2211></elt2211>
   </container>
   <container>
      <elt3243><text>I would also like to be in the string</text></elt3243>
      <elt1122></elt1122>
      <elt> </elt>
      <elt2211></elt2211>
   </container>
</containers>

我想要的结果:

String result = "Put me in a string please \n I would also like to be in the string";

这样做的最佳方法是什么?

最佳答案

XDocument doc = XDocument.Load(file.FullName);
var strings = doc.Descendants("container").SelectMany(x => x.Descendants("text")).ToList();
return strings.Join(" \n ");

关于c# - 使用 XML 获取所有同名元素的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842394/

相关文章:

javascript - 你如何用jquery找出根元素是什么元素类型

c# - OracleCommand 命令,ExecuteNonQuery 问题

c# - 循环一周的日期,直到在该周内找到假期

c# - 如何使用SharpDX绘制文字?

C# 进程等待毫秒精确

.net - ISerializable 和向后兼容性

c# - 在 C# 中解析大型 XML(大小为 1GB)的最佳方法是什么?

c# - 在自定义类型上使用集合初始化语法?

c# - Marshall 结构数组

java - 使用哪个 Java XML 解析器?