C# 从 XML 树中读取元素值

标签 c# xml

我正在尝试读取 XML 文档中特定元素的一些值,例如

的值。

<?xml version="1.0" ?>
<main>
  <alpha>One</alpha>
  <beta>
    <delta>DeltaValueFromBeta</delta>
    <epsilon>EpsilonValueFromBeta</epsilon>
    <phi>PhiValueFromBeta</phi>
  </beta>
  <gamma>
    <delta>DeltaValueFromGamma</delta>
    <epsilon>EpsilonValueFromGamma</epsilon>
    <phi>PhiValueFromGamma</phi>
  </gamma>
</main>

我可以使用如下代码获取值:

XDocument doc = XDocument.Load("Sample.xml");
var quiz = from elements in doc.Elements("main").Elements("beta").Elements("epsilon")
           select elements;

foreach (var item in quiz)
{
  string sValue = (string) item.Value;
  textBox1.AppendText(sValue);
}           

有没有更直接的方法来选择我需要的元素值,而不必使用 foreach 循环?

谢谢 尼克

最佳答案

XPath 是直接访问节点的另一个选项。此引用资料可能会对您有所帮助。 How to get values from an XML file matching XPath query in C#

编辑以添加到文本框而不使用 foreach where result = XPath 查询结果集合:

textbox1.AppendText(result.Select(x => x.Value));

XPath 允许比 LINQ 查询更容易地构建动态路径。

关于C# 从 XML 树中读取元素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20996219/

相关文章:

xml - 在忽略格式的颠覆中管理 XML 文档

c# - 如何循环遍历XML中的所有节点并根据C#中的值更改节点值?

java - 如何将值传递给 xsd :string RPC encoded SOAP xml parameter in java?

c# - C# 中的私有(private)委托(delegate)

c# - 我如何设置分步流程

xml - Visual Studio 2010 排序 xml/xaml 属性

xml - 使用 config.xml 重写 url

c# - 什么时候使用哪种类型的泛型接口(interface)定义?

c# - 从 EF for PostGresql 生成的查询中的非最佳计数

c# - LINQ 在 View 中不工作。任何想法如何解决这一问题?