正在搜索XML节点数组
本文关键字:节点 数组 XML 搜索 | 更新日期: 2023-09-27 18:30:13
我有一个System.Xml.XmlNode
数组,其数据类似于:
[0] = <Node1 xmlns="---">N1Data</Node1>
[1] = <Node2 xmlns="---">N2Data</Node2>
[2] = <Node3 xmlns="---">N3Data</Node3>
使用LINQ,如何选择Node2的内部数据?这对于XDocument来说似乎微不足道,但我的数据格式是不可协商的,因为它是由外部资源提供的。
提前谢谢。
也许是这样?
XmlNode[] nodes = ...;
string value = nodes.Single(n => n.LocalName == "Node2").InnerXml;
// or .InnerText, depending on what you need.
新答案:完全更改为完全不使用XDocument
,根据作者的请求:
string[] elementArray = new[]
{
"<Node1 xmlns='"foo'">Bar</Node1>",
"<Node2 xmlns='"foo'">Bar</Node2>",
"<Node3 xmlns='"foo'">Bar</Node3>"
};
var search = "Node2";
string result = elementArray
.Where(x => x.Split(' ').First().Substring(1) == search)
.Select(x =>
{
int closeBrace = x.IndexOf(">");
int openBrace = x.IndexOf("<", closeBrace);
return x.Substring(closeBrace + 1, openBrace - closeBrace - 1);
})
.Single();