在使用XML时需要使用不同的方法 - LINQ to XML,streaming,DOM。
谁能举例说明这种方法?
我只是想看看这些方法之间的区别。
答案 0 :(得分:1)
对Linq不确定,但流与dom的不同之处在于DOM方法在用户级API变为活动之前将整个XML文档解析到内存中,而基于流的方法在低级别期间引发“事件”解析例程。考虑如果您使用DOM与Streamed处理文件末尾存在语法错误的长XML文件会发生什么情况;在程序可以“获取数据”之前,基于DOM的方法会出错,而基于流的方法在错误被抛出之前就已经生成了很长的事件列表。
DOM方法意味着API可以执行“整个文档查找”,例如在DOM / Xpath中,您可以将“// div”表示“文档中的所有div元素”,这在一个更难/不可能的情况下流式方法。另一方面,流式处理往往使用较少的内存,因为XML文档中只有一小部分需要一次保存在内存中。
使用这些方法的API示例是基于流的SAX / XmlReader,基于DOM的DOM / XSLT。