>使用对象模型和XPath查询解析XmlDocument。
> XSL / T
但我从来没有使用过…
> .Net 3.5的新的Linq Xml对象模型
任何人都可以告诉我三种替代品之间的比较效率?
我意识到,特定的用法将是一个因素,但我只是想一个粗略的想法。例如,Linq选项是否比其他选项更慢?
您描述的所有三个方法执行类似。 XSLT有很多空间是最慢的,因为它让你结合XPath的低效率与模板匹配的低效率。 XPath和LINQ查询本质上都是相同的事情,这是通过XML节点的可枚举列表的线性搜索。我希望LINQ在实践中略微更快,因为XPath是在运行时解释,而LINQ在编译时解释。
但是一般来说,如何编写查询将比使用什么技术对执行速度有更大的影响。
针对XML文档编写快速查询的方法是相同的,无论是使用XPath还是LINQ:制定查询,以便尽可能少的节点在执行期间访问。使用哪种技术无关紧要:检查文档中每个节点的查询的运行速度比仅检查其中一小部分的查询慢得多。你做这件事的能力更多取决于XML的结构,比其他任何事情:具有可导航的元素层次结构的文档通常比元素是文档元素的所有子元素的查询要快得多。
编辑:
虽然我很肯定我是对的,查询XML是绝对最快的方式是最难的,真正最快(和最难的)方式不使用XmlReader;它使用直接处理流中的字符的状态机。像使用正则表达式解析XML一样,这通常是一个可怕的想法。但它确实给你选择交换功能的速度。通过决定不处理您的应用程序不需要的那些XML片段(例如命名空间解析,字符实体扩展等),您可以构建一些东西,通过比XmlReader更快的字符流来寻找。我可以想到的应用程序,这甚至不是一个坏主意,虽然我不能想到很多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。