首页 / .NET / 正文

[C#].NET/C#程序开发中创建XML文档的方式有哪些呢?

2227 发布于: 2018-02-09 读完约需5分钟

问题描述

如题,在.NET/C#程序开发中,我们很多时候需要接触到XML文档,有可能是从第三方接口获取到的数据是XML格式的,也有可能是自己需要提供XML文档给第三方使用,那么,我们如何创建XML文档,有哪些XML的创建方式呢?

方案一

在.NET 3.5或者以上版本中,我们可以使用XDocument来处理,如:

Console.WriteLine(
    new XElement("Foo",
        new XAttribute("Bar", "some & value"),
        new XElement("Nested", "data")));

或者:

XmlDocument doc = new XmlDocument();
XmlElement el = (XmlElement)doc.AppendChild(doc.CreateElement("Foo"));
el.SetAttribute("Bar", "some & value");
el.AppendChild(doc.CreateElement("Nested")).InnerText = "data";
Console.WriteLine(doc.OuterXml);

但是,如果XML文档内容过大,或许使用XmlWriter会更好,如:

XmlWriter writer = XmlWriter.Create(Console.Out);
writer.WriteStartElement("Foo");
writer.WriteAttributeString("Bar", "Some & value");
writer.WriteElementString("Nested", "data");
writer.WriteEndElement();

最后,我们还可以使用XmlSerializer,如:

[Serializable]
public class Foo
{
    [XmlAttribute]
    public string Bar { get; set; }
    public string Nested { get; set; }
}
...
Foo foo = new Foo
{
    Bar = "some & value",
    Nested = "data"
};
new XmlSerializer(typeof(Foo)).Serialize(Console.Out, foo);

方案二

new XElement("Foo",
       from s in nameValuePairList
       select
             new XElement("Bar",
                  new XAttribute("SomeAttr", "SomeAttrValue"),
                          new XElement("Name", s.Name),
                          new XElement("Value", s.Value)
                         )
            );

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [C#].NET/C#程序开发中C#的数据类型与SQL Server数据库的数据类型一一对应关系是怎么样的?

下一篇: [C#].NET/C#程序开发中如何从一个泛型集合List<T>中删除重复的元素?

本文永久链接码友网 » [C#].NET/C#程序开发中创建XML文档的方式有哪些呢?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册