需要编辑时,使用XmlDocument或XPathDocument进行C#XslCompiledTransform?

时间:2009-12-14 17:02:49

标签: c# xmldocument xslcompiledtransform xpathdocument

我在这里做了几个假设:

  1. XPathDocument不可编辑。
  2. XmlDocument是可编辑的。
  3. XPathDocument更有效 XslCompiledTransform。
  4. 情况如此(如果我错了请纠正我),会更好(更有效率):

    1. 使用。进行修改 XmlDocument,然后转换为 转换前的XPathDocument。 有没有一种优化的方法 此?
    2. 坚持使用XmlDocument 通过改造。
    3. 有些背景,我从webservice获取一个复杂的xml,然后用xpath找到一些需要修改的元素,然后用xslt创建html。

      提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

这取决于需要多少修改,数据有多大以及您是否熟悉xslt。如果“不”到最后一个,只需使用XDocument等(我上次运行个人资料时,XDocument比我的数据{/ 1}} 更快 - 运行您的自己的测试)。使用XmlDocument / XDocument.Load,找到您的节点,进行编辑并保存。


如果您必须使用xslt,那么XDocument.Parse实际上不是一个选项;一旦您将其加载到XDocument,您可能保留 XmlDocument - 我不建议将其解析为第二个 DOM。< / p>

当然,它让我们想知道:如果要使用xslt,为什么要修改xslt的xml ;也许只是在xslt期间翻译?

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

答案 1 :(得分:1)

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