本次介紹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 會自動進行 轉義。比如,< 會轉義為 < 。