【发布时间】:2016-03-05 08:04:32
【问题描述】:
<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 总是""。你能指出哪里有问题吗?
非常感谢
【问题讨论】:
-
好吧,您的 xml 节点没有内部文本。
<Y id="abc" abv="a">This is the inner text</y>。我忘记了确切的属性,但很可能是node.Attributes["id"].Value == "abc"和Select(x => x.Attributes["abv"].Value)