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); // 特殊字符转义 < 会转义为 < 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><开发部></remark> </user> </root>
需要注意的是,如果元素的值文本中包含 HTML 转义字符,API 会自动进行 转义。比如,< 会转义为 < 。