我在C#.net 4.0中使用XMLReader
来搜索一小段XML。我想查找XML中的特定元素,并使用XMLReader.ReadToFollowing("name")
方法查找元素。我不知道XML文档中元素的顺序;他们处于不同的次序或完全失踪。顺序对我无关紧要,但是如果元素缺失,我会抛出一个异常。C#XML解析 - 搜索特定元素
XMLReader只是前向的,所以如果我要查找的第一个元素是XML文档中的最后一个值,则额外的读取操作将失败。
我正在考虑为每个搜索创建一个新的XMLReader。我只有一小部分元素可供查找,而且XML不是很大,所以我不认为会有太多开销,但我可能是错的。
当您不知道元素的顺序时,是否有更好的库用于搜索XML?或者,XML中的订单缺乏违反XML规范?
具体来说,假设我有一些简单的XML。一个头和10个孩子。
<sometag>
<element1>data</element1>
<element2>data</element2>
.
.
.
<element10>data</element10>
</sometag>
打开5个XMLReader来查找这些元素会是低效吗?我也可以使用一个阅读器并逐步浏览每个元素,但是之后我需要跟踪我找到的元素。
如果您有一个XML示例,有几种方法可以做到这一点。我相信很多人会很乐意发表一些具体的例子 - 我知道我会!你可以采取的其他方法是通过XmlDocument和XPath使用基于DOM的解析 - http://msdn.microsoft.com/en-us/library/system.xml.xmldocument或更现代的XDocument类 - http:// msdn .microsoft.com/en-us/library/system.xml.linq.xdocument.aspx – dash