C# 创建XML

本次介绍XML的操作,与JSON不同,.NET已经包含了对XML的支持,相关的API在System.Xml这个命名空间下,所以不需要引入第三方的扩展包。

创建XML时,主要使用到以下几个相关类。

XmlDocument ,表示一个 XML 文档

XmlDeclaration ,表示 XML 第一行

XmlElement , 表示一个 XML 元素

XmlAttribute , 表示一个元素的属性

    XmlDocument doc = new XmlDocument();
    XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
    doc.AppendChild(dec);
    // <root>
    XmlElement root = doc.CreateElement("root");
    doc.AppendChild(root);

这样就创建一个 XML 文档对象 doc,并添加了一个根元素。一个 XmlElement 表示一个元素节点,下面还可以添加更多的元素。

    // <root>/<user>
    XmlElement user = doc.CreateElement("user");
    root.AppendChild(user);

    // 节点属性
    user.SetAttribute("id", "20220227");
    // <root>/<user>/<username>
    XmlElement username = doc.CreateElement("username");
    username.InnerText = "admin";
    user.AppendChild(username);
    // <root>/<user>/<password>
    XmlElement password = doc.CreateElement("password");
    password.InnerText = "123qwe";
    user.AppendChild(password);
    // <root>/<user>/<moblie>
    XmlElement moblie = doc.CreateElement("moblie");
    moblie.InnerText = "13810012345";
    user.AppendChild(moblie);

    // 特殊字符转义 < 会转义为 &lt;
    XmlElement remark = doc.CreateElement("remark");
    remark.InnerText = "<开发部>";
    user.AppendChild(remark);

    // Save 方法有多个重载版本
    // 1 输出到文件
    doc.Save("user.xml");
    // 2 输出为字符串
    string xmlstr = doc.InnerXml;
    Console.WriteLine("输出 XML: " + xmlstr);

其中,如果要输出到一个文件,可以调用 doc.Save(filePath) 。如果要转成 字符串,可以调用 doc.InnerXml 属性,会转成 XML 格式的字符串。

运行上述程序,得到的 XML 内容如下。

<?xml version="1.0" encoding="utf-8"?>
<root>
  <user id="20220227">
    <username>admin</username>
    <password>123qwe</password>
    <moblie>13810012345</moblie>
    <remark>&lt;开发部&gt;</remark>
  </user>
</root>

需要注意的是,如果元素的值文本中包含 HTML 转义字符,API 会自动进行 转义。比如,< 会转义为 &lt; 。

 

posted @ 2022-02-27 22:23  Zeng。  阅读(1426)  评论(0编辑  收藏  举报