1

我在这里做几个假设:

  1. XPathDocument 不可编辑。
  2. XmlDocument 是可编辑的。
  3. XPathDocument 对于 XslCompiledTransform 更有效。

既然如此(如果我错了,请纠正我),是否会更好(更有效):

  1. 使用 XmlDocument 进行修改,然后在转换之前转换为 XPathDocument。有没有优化的方法来做到这一点?
  2. 只需通过转换坚持使用 XmlDocument。

一些背景知识,我从 web 服务获取复杂的 xml,然后使用 xpath 找到一些需要修改的元素,然后使用 xslt 创建 html。

在此先感谢您的帮助。

4

2 回答 2

2

这取决于需要修改多少,数据有多大,以及您是否熟悉xslt。如果“不”到最后,只需使用XDocumentetc(上次我运行配置文件,XDocumentXmlDocument 我的数据更快- 运行你自己的测试)。使用XDocument.Load/ XDocument.Parse,找到您的节点,对其进行编辑并保存。


如果您必须使用 xslt,那么XDocument这不是一个真正的选择;一旦你把它加载进去XmlDocument,你还不如留下XmlDocument——我不建议将它解析成第二个DOM。

当然,这让我们感到疑惑:如果要使用 xslt,为什么要在 xslt之外修改 xml?也许只是在 xslt 期间翻译?

当然,要为您的数据获得 100% 准确的答案,您需要对其进行分析。但是诸如适当使用 xslt 分组结构之类的事情通常会比vs产生更大的差异。XmlDocumentXPathDocument

于 2009-12-14T17:20:36.753 回答
1

只需使用XmlDocument该类进行转换。它必须是一个庞大的文档才能真正看到性能提升。XslCompiledTransform如果您打算多次使用它,您可能需要编译该类的静态实例。

于 2009-12-14T17:16:47.947 回答