如何在C#中处理XML

90

在C# 2.0中处理XML文档和XSD的最佳方法是什么?

使用哪些类等。解析和创建XML文档等的最佳实践是什么。

编辑:欢迎提供.Net 3.5建议。


1
对于那些试图寻找更可行解决方案的人,请忽略此内容。这是一个旧的.NET库。改用XDocument,你就不用挖眼睛来纾解沮丧了。 - AER
12个回答

0
如果您需要在数据转换XmlNode <=> XNode <=> XElement之间进行转换(例如,为了使用LINQ),这些扩展可能会对您有所帮助:
public static class MyExtensions
{
    public static XNode GetXNode(this XmlNode node)
    {
        return GetXElement(node);
    }

    public static XElement GetXElement(this XmlNode node)
    {
        XDocument xDoc = new XDocument();
        using (XmlWriter xmlWriter = xDoc.CreateWriter())
            node.WriteTo(xmlWriter);
        return xDoc.Root;
    }

    public static XmlNode GetXmlNode(this XElement element)
    {
        using (XmlReader xmlReader = element.CreateReader())
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(xmlReader);
            return xmlDoc;
        }
    }

    public static XmlNode GetXmlNode(this XNode node)
    {
        return GetXmlNode(node);
    }
}

使用方法:

XmlDocument MyXmlDocument = new XmlDocument();
MyXmlDocument.Load("MyXml.xml");
XElement MyXElement = MyXmlDocument.GetXElement(); // Convert XmlNode to XElement
List<XElement> List = MyXElement.Document
   .Descendants()
   .ToList(); // Now you can use LINQ
...

0

Cookey的回答很好...但以下是如何从XSD(或XML)创建强类型对象并在几行代码中序列化/反序列化的详细说明:

说明


您所查找的页面不存在。:( - Ian Grainger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接