Xml二进制搜索属性

时间:2013-12-28 02:50:17

标签: c# xml binary-search

我有一个xml文档,其中包含带有数字属性的标记。它们按此属性排序。通过二分搜索找到这个标签是否值得?或者对节点的访问不是恒定时间,最好将数据传递给数组?它是在xml库中实现的吗?

1 个答案:

答案 0 :(得分:1)

这取决于您如何阅读文档。处理XML文档有两种方法:

第一个由XmlReader实现,是面向流的,一次处理一个元素,并且不再存储在程序存储器中。

第二个跟随Document Object Model接口:它将整个文档加载到内存中,并允许您查询它而无需回溯文件。在.NET中使用它的最佳方法是LINQ to XML

根据文档的大小,最好选择一个或另一个,但您必须意识到使用面向流的API进行任何其他线性搜索是不可能的。

据我所知,你无法使用LINQ to XML进行二进制搜索,因为它使用IEnumerable。您必须获取元素数组,然后在数组上实现二进制搜索。绝对不是完成任务的艰巨任务。