如何使用C#编写xml文件

本文关键字:xml 文件 编写 何使用 | 更新日期: 2023-09-27 17:59:32

我是c#asp.net中的新人。我想在asp.net web应用程序的c#代码隐藏文件中编写xml文件,并将该xml文件作为字符串传递给web服务。有谁能帮助我吗?它对我的项目非常有用。感谢

如何使用C#编写xml文件

正如"fiver"所提到的,您可以使用XmlDocument或新的简化版本XDocument来创建XML文档。以下是MSDN中用于创建XML文档和写入文件的示例代码片段。

XDocument doc = new XDocument(
    new XElement("Root",
        new XElement("Child", "content")
    )
);
doc.Save("Root.xml");

这将向xml文件写入以下文本

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Child>content</Child>
</Root>

注意:XDocument仅在.NET framework 3.5及更高版本上受支持

您可以使用XmlSerializer类在Xml中序列化对象:

序列化到文件:

    void SaveAsXmlToFile(object o, string fname)
    {
        XmlSerializer ser = new XmlSerializer(o.GetType());
        using (var f = File.Open(fname, FileMode.OpenOrCreate))
            ser.Serialize(f, o);
    }

您也可以使用与XmlSerializer相同的DataContractSerializer类。

您还可以将对象序列化为字符串,并返回它:

序列化为字符串:

    string ToXml(object o)
    {
        XmlSerializer ser = new XmlSerializer(o.GetType());
        StringBuilder sb = new StringBuilder();
        using (StringWriter sw = new StringWriter(sb))
            ser.Serialize(sw, o);
        return sb.ToString();
    }

此外,如果您需要对生成的Xml进行更多控制,则可以使用结构化的Xml对象,如XmlDocument等,或者使用其他答案中所示的XmlWriter等Xml编写类。

您可以使用XMLDocument类。它有各种CreateXXX方法来创建XML元素。

您似乎不需要保存XML文件,因此可以在完成后使用Save(String)方法将其序列化为字符串。

请参阅此问题:如何在C#中构建XML?

如果您使用的是.Net4,XDocument类将起作用,对于.Net2,请使用XmlDocument。

XDocument.ToString()直接将XML作为字符串返回。对于XmlDocument类,可以使用XmlDocument.Save()方法保存到流或TextWriter XmlDocument.OuterXml属性。

关于这个问题的两个例子都演示了如何将其输出为字符串。您可以使用它将字符串传递给您的web服务。

using System.Xml;
using System.Xml.Schema;
XmlTextWriter xtwFeed = new XmlTextWriter(Server.MapPath("rss.xml"), Encoding.UTF8);
        xtwFeed.WriteStartDocument();
        // The mandatory rss tag
        xtwFeed.WriteStartElement("rss");
        xtwFeed.WriteAttributeString("version", "2.0");
        // Write all the tags like above and end all elements
        xtwFeed.WriteEndElement();
        xtwFeed.WriteEndDocument();
        xtwFeed.Flush();
        xtwFeed.Close();