我正在尝试读取 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/