C# 如何使用C编写xml文件#

C# 如何使用C编写xml文件#,c#,asp.net,C#,Asp.net,我是c#asp.net的新手。 我想在asp.net web应用程序中用c#代码隐藏文件编写xml文件,并将此xml文件作为字符串传递给web服务。任何人都能帮助我,这将对我的项目非常有用。 谢谢你你可以使用这门课。它有各种CreateXXX方法来创建XML元素 似乎您不需要保存XML文件,因此您可以在完成后使用save(String)方法将其序列化为字符串。请参见以下问题: 如果您使用的是.Net4,则该类将起作用,对于.Net2,请使用 直接将XML作为字符串返回。对于XmlDocumen

我是c#asp.net的新手。 我想在asp.net web应用程序中用c#代码隐藏文件编写xml文件,并将此xml文件作为字符串传递给web服务。任何人都能帮助我,这将对我的项目非常有用。 谢谢你

你可以使用这门课。它有各种
CreateXXX
方法来创建XML元素

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

请参见以下问题:

如果您使用的是.Net4,则该类将起作用,对于.Net2,请使用

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


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

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

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();
序列化为文件:

    void SaveAsXmlToFile(object o, string fname)
    {
        XmlSerializer ser = new XmlSerializer(o.GetType());
        using (var f = File.Open(fname, FileMode.OpenOrCreate))
            ser.Serialize(f, o);
    }
    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();
    }
您还可以使用与
XmlSerializer
相同的方法使用
DataContractSerializer

还可以将对象序列化为字符串,然后返回:

序列化为字符串:

    void SaveAsXmlToFile(object o, string fname)
    {
        XmlSerializer ser = new XmlSerializer(o.GetType());
        using (var f = File.Open(fname, FileMode.OpenOrCreate))
            ser.Serialize(f, o);
    }
    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
等,也可以使用Xml编写类,如其他答案中所述的
XmlWriter

如“fiver”所述,您可以使用XmlDocument或新的简化版本XDocument来创建Xml文档。下面是中用于创建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及更高版本上受支持

您可以创建一个StringWriter并将其传递给XmlTextWriter构造函数,然后在其上调用ToString以获得字符串形式的结果。问题还不清楚,请详细说明一下。。。你到底想干什么?