gpt4 book ai didi

c# - 在 XmlNodeList 上使用 LINQ

转载 作者:IT王子 更新时间:2023-10-29 04:48:41 26 4
gpt4 key购买 nike

<X version="1.0">
<Y id="abc" abv="a"/>
<Y id="edf" abv="e"/>
</X>

我想选择id为“abc”的节点,返回其abv为“a”。

XmlDocument doc = new XmlDocument();
doc.Load(filePath);
XmlNodeList list = doc.SelectNodes("X/Y");
var node = list.Cast<XmlNode>().Where(node => node["id"].InnerText == "abc")
.Select(x=>x["abv"].InnerText);

但是不行,node["id"].InnerText一直是""。能指出哪里有问题吗?

非常感谢

最佳答案

除了由于非唯一的 node 变量(第一个在 linq 查询之外,第二个在“where”方法 lambda 中)而无法编译您的代码片段这一事实之外,您还错过了Attributes 在您的查询中。

应该是这样的

var node = list.Cast<XmlNode>()
.Where(n => n.Attributes["id"].InnerText == "abc")
.Select(x => x.Attributes["abv"].InnerText);

关于c# - 在 XmlNodeList 上使用 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34019738/

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