使用.net更改XML根节点(名称+名称空间)的最佳方法



我想用c#以编程方式更改XML文档中的根节点和名称空间。我遇到了几个不同的解决方案,主要使用XmlDocument

最常见的解决方案是将整个文档加载到内存中,替换rood节点,然后将InnerXml设置为原根的InnerXml

在我看来,当你只需要一个节点时,在内存中加载整个XML文档似乎有点愚蠢。对于任何大小的XML,这几乎都可以快速运行。

的例子:

<MyDocument xmlns="http://question.stackoverflow.com">
    <AfewKilobytesOfXML />
</MyDocument>

可能成为:

<YourDocument xmlns="http://answer.stackoverflow.com">
    <AfewKilobytesOfXML />
</YourDocument>

最好的情况是文档的主体部分被完全忽略,并且不作为流加载到内存中。

我想提供一些我已经尝试过的东西,但我甚至不知道哪些类是最好的。

输入为Stream。很高兴知道:Stream可能根本不包含XML,所以如果您的答案有检查,则可以加分。

如果您想避免将整个xml文件加载到内存中,我会说看看XmlTextReader和xmltextwwriter。这些类是为节点一个节点地处理XML文件而设计的,无需将整个文档加载到内存中。

查看此链接中使用的各种方法:http://www.codeproject.com/Articles/15278/How-to-Append-to-a-Large-XML-File

相关内容

  • 没有找到相关文章

最新更新