我目前正在开发一个读写XML文件的程序。虽然这是一项简单的任务,但我对未来的问题很关注。
我的代码从XML中读取流数据,并检查每个元素<x>
,直到找到符合条件的元素,这非常快,因为该文件当前有大约100 <x>
个元素,但是当添加更多元素时,此任务将会慢得多,特别是如果符合条件的元素是非常大的文件中的最后一个元素。
我应该采取什么方法来尽量减少这种影响? 我正在考虑将文件分成较小的文件(每个文件最多包含1000个元素),同时从各种文件中读取文件。这是一个正确的方法吗?
我正在用C#编码,以防它与特定语言的方法相关。
答案 0 :(得分:2)
您应该使用.Net的可用XML API之一。哪一个取决于XML文件的大小。在this question中,XDocument
(Linq-to-Xml)和XmlReader
之间进行了讨论。总结一下:如果您的文件适合内存,请使用XDocument
。如果没有,请使用XmlReader
。
答案 1 :(得分:0)
在您的情况下,这听起来像是一个批处理过程。也许这个链接:https://www.codeproject.com/Articles/1155341/Batch-Processing-Patterns-with-Taskling会帮助你。我从未在C#中这样做,但在Java中,这是解决此类任务的好方法。希望它会对你有所帮助。