.net创建XML文件的两种方法
方法一:按照XML的结构一步一步的构建XML文档.
通过.Net FrameWork SDK中的命名空间"System.Xml"中封装的各种类来实现的
方法二:直接定影XML文档,然后保存到文件。
通过"XmlDocument"类中的"LoadXml"方法
.aspx 的前台代码
Code
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6 <head runat="server">
7 <title></title>
8 </head>
9 <body>
10 <form id="form1" runat="server">
11 <div>
12 <asp:Button ID="btn" runat="server" OnClick="btn1_OnClick" Text="创建xml的第一种方法" /><br />
13 <asp:Button ID="btn2" runat="server" OnClick="btn2_OnClick" Text="创建xml的第二种方法" />
14 </div>
15 </form>
16 </body>
17 </html>
C#的后台代码
Code
1using System;
2using System.Collections.Generic;
3using System.Web;
4using System.Web.UI;
5using System.Web.UI.WebControls;
6using System.Text;
7using System.Xml;
8
9public partial class Default4 : System.Web.UI.Page
10{
11 protected void Page_Load(object sender, EventArgs e)
12 {
13
14 }
15 //创建xml文件方法一
16 protected void btn1_OnClick(object sender, EventArgs e)
17 {
18 XmlText xmltext;
19 XmlDocument xmldoc = new XmlDocument();
20
21 //加入XML的声明段落
22 XmlNode xmlnode = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
23 xmldoc.AppendChild(xmlnode);
24
25 //加入一个根元素
26 XmlElement xmlelem = xmldoc.CreateElement("", "bookstore", "");
27 xmltext = xmldoc.CreateTextNode("");
28 xmlelem.AppendChild(xmltext);
29 xmldoc.AppendChild(xmlelem);
30
31 //加入一个子元素
32 XmlElement xmlelem1 = xmldoc.CreateElement("", "book", "");
33 xmltext = xmldoc.CreateTextNode("");
34 xmlelem1.AppendChild(xmltext);
35 //为子元素"book"增加两个属性
36 xmlelem1.SetAttribute("genre", "", "fantasy");
37 xmlelem1.SetAttribute("ISBN", "2-3631-4");
38
39 xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1);
40
41 //创建三个子元素的子元素
42 XmlElement xmlelem2 = xmldoc.CreateElement("", "title", "");
43 xmltext = xmldoc.CreateTextNode("Oberon's Legacy");
44 xmlelem2.AppendChild(xmltext);
45 xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem2);
46
47 XmlElement xmlelem3 = xmldoc.CreateElement("", "author", "");
48 xmltext = xmldoc.CreateTextNode("Corets, Eva");
49 xmlelem3.AppendChild(xmltext);
50 xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem3);
51
52 XmlElement xmlelem4 = xmldoc.CreateElement("", "price", "");
53 xmltext = xmldoc.CreateTextNode("5.95");
54 xmlelem4.AppendChild(xmltext);
55 xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem4);
56 //保存
57 xmldoc.Save(Server.MapPath("bookstore.xml")); }
58
59 //创建xml文件方法二
60 protected void btn2_OnClick(object sender, EventArgs e)
61 {
62 XmlDocument xmldoc = new XmlDocument(); //创建空的XML文档
63 xmldoc.LoadXml("<?xml version='1.0' encoding='gb2312'?>" +
64 "<bookstore>" +
65 "<book genre='fantasy' ISBN='2-3631-4'>" +
66 "<title>Oberon's Legacy</title>" +
67 "<author>Corets, Eva</author>" +
68 "<price>5.95</price>" +
69 "</book>" +
70 "</bookstore>");
71 xmldoc.Save(Server.MapPath("bookstore2.xml")); //保存
72 xmldoc.Save(HttpContext.Current.Server.MapPath("bookstore3.xml"));// 一样也可以保存
73 }
74}
两种方法效果一样。
读写 XML 小结
Code
1 using System.Xml;
2 //初始化一个xml实例
3 XmlDocument xml=new XmlDocument();
4
5 //导入指定xml文件
6 xml.Load(path);
7 xml.Load(HttpContext.Current.Server.MapPath("../7in10.xml"));
8
9 //指定一个节点
10 XmlNode root=xml.SelectSingleNode("/root");
11
12 //获取节点下所有直接子节点
13 XmlNodeList childlist=root.ChildNodes;
14
15 //判断该节点下是否有子节点
16 root.HasChildNodes;
17
18 //获取同名同级节点集合
19 XmlNodeList nodelist=xml.SelectNodes("/Root/News");
20
21 //生成一个新节点
22 XmlElement node=xml.CreateElement("News");
23
24 //将节点加到指定节点下,作为其子节点
25 root.AppendChild(node);
26
27 //将节点加到指定节点下某个子节点前
28 root.InsertBefore(node,root.ChildeNodes[i]);
29
30 //为指定节点的新建属性并赋值
31 node.SetAttribute("id","11111");
32
33 //为指定节点添加子节点
34 root.AppendChild(node);
35
36 //获取指定节点的指定属性值
37 string id=node.Attributes["id"].Value;
38
39 //获取指定节点中的文本
40 string content=node.InnerText;
41
42 //保存XML文件
43 xml.Save(path);
44 xml.Save(HttpContext.Current.Server.MapPath("../7in10.xml"));
Tag标签: ASP.NET XML