给定代码:
var doc = new XmlDocument();
doc.LoadXml(@"<a>
<b>test
<c>test2</c>
</b>
</a>");
var node = doc.SelectNodes("/a/b")[0];
然后我想提取node b
- 在本例中为“test”的“文本”值,而不从所有子节点中检索所有文本元素(如 .innerText
那样)
我发现自己求助于这段代码
var elementText = node.ChildNodes.Cast<XmlNode>().First(a => a.NodeType == XmlNodeType.Text).Value;
不幸node.Value
的是,在这种情况下还有其他事情
有没有一种更整洁/内置的方式而不使用 linq 铸造?这不涉及我做类似的事情;
foreach (var childNode in node.ChildNodes)
if (childNode.NodeType==XmlNodeType.Text)
...