如何使用C#编写xml文件
本文关键字:xml 文件 编写 何使用 | 更新日期: 2023-09-27 17:59:32
我是c#asp.net中的新人。我想在asp.net web应用程序的c#代码隐藏文件中编写xml文件,并将该xml文件作为字符串传递给web服务。有谁能帮助我吗?它对我的项目非常有用。感谢
正如"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();