如何最快地选择单个 XML 节点值
Posted
技术标签:
【中文标题】如何最快地选择单个 XML 节点值【英文标题】:How to select single XML node value fastest 【发布时间】:2014-03-07 23:47:51 【问题描述】:我有以下 xml
<?xml version='1.0'?>
<test>
<exam paper="math" section="third" value="dull">
<place>college</place>
</exam>
</test>
我想获得“部分”的值并以最佳性能放置“标签”。我应该使用 linq 还是 xmldatareader?也请分享代码
【问题讨论】:
xml -exam
元素未关闭。
XmlDataReader 可能比 LINQ to XML 更快,但 LINQ to XML 可能更容易编写和维护。
我能够在 0.1 秒多的时间内运行以下代码一万 (10,000) 次:您需要比这更好的性能吗?
var doc = XDocument.Parse(
@"<?xml version=""1.0""?>
<test>
<exam paper=""math"" section=""third"" value=""dull"">
<place>college</place>
</exam>
</test>");
var info =
(from test in doc.Elements("test")
from exam in test.Elements("exam")
select new
section = exam.Attribute("section").Value,
place = exam.Element("place").Value
)
.ToList();
【讨论】:
太棒了 StriplingWarrior,当我在按钮提交事件上调用它时出现以下错误,我已经添加了命名空间 system.xml.linq。错误在以下代码中突出显示 - 文档。 Elements("test") 找不到源类型“System.Collections.Generic.IEnumerable以上是关于如何最快地选择单个 XML 节点值的主要内容,如果未能解决你的问题,请参考以下文章