gpt4 book ai didi

c# - 读取 XML 中的下一个节点 (Linq to XML C#)

转载 作者:行者123 更新时间:2023-11-30 22:21:33 25 4
gpt4 key购买 nike

我有一个像这样设置的 XML 文档(没有属性):

<variables>
<variable>
<name>Name_Value</name>
<value>Value of Entry</value>
</variable>
<variable>
<name>Name_Value2</name>
<value>Value of Entry2</value>
</variable>
</variables>

我已使用 LINQ to XML 获取所有 <name> 的列表文档中的值。这些名称值按字母顺序显示在列表框控件中(不是 XML 文档中名称的顺序)。

当在列表框中选择一个项目时,我想将项目的名称传递给一个方法,该方法将在 XML 文档中搜索 <name> 中的该值。节点。找到后,我想找到下一个节点(即 <value> 节点)并将其值作为字符串返回。

我已经尝试了各种方法来获取这些信息,但显然我对 LINQ to XML 的了解还不够多,无法完成这项工作。只能为此提供解决方案吗?

最佳答案

XDocument xdoc = XDocument.Load(path_to_xml);
var query = from v in xdoc.Descendants("variable")
where (string)v.Element("name") == name
select (string)v.Element("value");

此 Linq 查询将返回 IEnumerbale<string>值元素,与您的名字相匹配。如果您确定指定名称的变量不应该超过一个

string value = query.SingleOrDefault();

或者在单个查询中:

string value =  xdoc.Descendants("variable")
.Where(v => (string)v.Element("name") == name)
.Select(v => (string)v.Element("value"))
.SingleOrDefault();

关于c# - 读取 XML 中的下一个节点 (Linq to XML C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14280901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com