从xml提取节点数据 [英] Extract nodes data from xml
本文介绍了从xml提取节点数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这样的xml:
<People>
<PersonID>5</PersonID>
<PersonID>7</PersonID>
<PersonID>9</PersonID>
</People>
我想创建一个带有所有id的字符串,例如: 5,7,9 。
我知道可以通过一个简单的循环来实现,但是由于此代码每秒被称为100倍的时间,因此我想使其成为最快的方法。
I would like to create a string with all the id's, like this: "5,7,9". I know it's possible with a simple loop, but since this code will be called 100's of time a second, I would like to make it the fastest possible way.
我正在使用 C#Framework 4.0。
我当前的代码:
XmlDocument doc = new XmlDocument();
XmlNodeList nodeList;
StringBuilder strXml = new StringBuilder();
doc.LoadXml(sXmlQuery);
nodeList = doc.SelectNodes("//PersonID");
if (nodeList != null)
{
foreach (XmlNode node in nodeList)
{
strXml.Append(node.InnerText.Trim());
strXml.Append(",");
}
}
推荐答案
您可以将 LINQ to XML 与字符串。加入,例如:
XDocument xmlDoc = XDocument.Parse(@"<People>
<PersonID>5</PersonID>
<PersonID>7</PersonID>
<PersonID>9</PersonID>
</People>");
var val = xmlDoc.Descendants("People")
.SelectMany(r => r.Elements("PersonID"))
.Select(r => r.Value);
string str = string.Join(",", val);
str
将为 str = 5,7,9
这篇关于从xml提取节点数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文