[英]C# XML Parsing - Searching for specific elements
我在C#.net 4.0中使用XMLReader
来搜索一小段XML。 我想在XML中找到特定的元素,并且正在使用XMLReader.ReadToFollowing("name")
方法来查找元素。 我不知道这些元素在XML文档中的顺序。 它们处于差异顺序或完全缺失。 顺序对我来说并不重要,但是如果缺少该元素,我将抛出异常。
XMLReader仅向前,因此,如果我要查找的第一个元素是XML文档中的最后一个值,则其他读取将失败。
我正在考虑为每个搜索创建一个新的XMLReader。 我只有很少的元素集,而且XML也不是很大,所以我认为不会有太多开销,但是我可能是错的。
当您不知道元素的顺序时,是否有更好的库可用于搜索XML? 还是XML缺乏顺序违反了XML规范?
具体来说,假设我有一些简单的XML。 一个头和十个孩子。
<sometag>
<element1>data</element1>
<element2>data</element2>
.
.
.
<element10>data</element10>
</sometag>
打开5个XMLReader来查找那些元素是否效率低下? 我还可以使用一个阅读器并逐步遍历每个元素,但随后我需要跟踪找到的元素。
尝试使用XPath。 它快得多,并且对元素的顺序(仅是层次结构)不敏感。
MSDN文档: http : //msdn.microsoft.com/zh-cn/library/ms256086.aspx
使用XPath进行编程确实需要一些学习。 并且,如果您的XML指定了名称空间,则需要确保将其包含在XPath查询中。
您具有.NET 4.0,因此请使用Linq到XML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.