【问题标题】:Best way to manipulate XML in .NET在 .NET 中操作 XML 的最佳方法
【发布时间】:2010-03-18 13:29:13
【问题描述】:

我需要操作现有的 XML 文档,并从中创建一个新文档,删除一些节点和属性,也许还添加新的,完成此任务的最佳类组是什么?

有很多用于 XML 操作的 .NET 类,我不确定什么是最佳方式。

【问题讨论】:

    标签: c# .net xml


    【解决方案1】:

    如果它是一个无法放入内存的非常大的 XML,您应该使用 XmlReader/XmlWriter。如果不是LINQ to XML 是非常容易使用的。如果您没有 .NET 3.5,您可以使用 XmlDocument

    以下是删除节点的示例:

    using System.Xml.Linq;
    using System.Xml.XPath;
    
    var doc = XElement.Load("test.xml");
    doc.XPathSelectElement("//customer").Remove();
    doc.Save("test.xml");
    

    【讨论】:

    • 谢谢!这会将 xml 作为内存中的字符串使用还是仅对文件有效?
    • 无论它来自哪里,它都应该与 xml 一起使用。您应该能够调用 XElement.Parse() 并将 xml 作为字符串传递。
    • 如果要处理xml命名空间,尤其是默认命名空间,请看这里:stackoverflow.com/questions/25396140/…
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      如果只是一个转换过程,使用 XML 样式表解析文档可能是最简单的选择。

      Here is how to use XSLT in .NET.

      Here is an introduction to XSLT.

      一开始我有点困惑,但现在我几乎使用 XSLT 来完成我所有的 XML 转换。

      【讨论】:

        【解决方案4】:

        如果您有官方架构,则可以使用 XmlSerializer。否则最好使用 XmlDocument、XmlNode、XmlElement 等类。

        否则,它还可能取决于您使用 xml 的目的,即标记一些文档、表示对象等。

        【讨论】:

        • @Kurt: XmlSerializer 不处理所有模式。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 2010-10-25
        • 1970-01-01
        相关资源
        最近更新 更多