ASP.Net 新建和读写 XML 文档小结
2009-08-21 12:31 诸葛二牛 阅读(334) 评论(0) 收藏 举报.net创建XML文件的两种方法
方法一:按照XML的结构一步一步的构建XML文档.
通过.Net FrameWork SDK中的命名空间"System.Xml"中封装的各种类来实现的
方法二:直接定影XML文档,然后保存到文件。
通过"XmlDocument"类中的"LoadXml"方法
.aspx 的前台代码
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#的后台代码
1
using
System; 2
using System.Collections.Generic; 3
using System.Web; 4
using System.Web.UI; 5
using System.Web.UI.WebControls; 6
using System.Text; 7
using System.Xml; 8
9
public 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 小结
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"));
浙公网安备 33010602011771号