学习Professional ASP.NET 2.0 XML(二)
2006-04-16 12:31 Clingingboy 阅读(660) 评论(0) 编辑 收藏 举报
这次继续学习XML编写器.直接看代码吧.比较简单
只需要了解其中的几个方法就好
WriteStartDocument 方法 书写版本为“1.0”并具有独立属性的 XML 声明
然后重载Create()方法就好了.这样创建的XML文件就不会写在一行了.
根据命名空间写入XML
<%@ Page Language="C#" %>
![](/Images/OutliningIndicators/None.gif)
<%@ Import Namespace="System.Xml" %>
![](/Images/OutliningIndicators/None.gif)
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
![](/Images/OutliningIndicators/InBlock.gif)
string xmlFilePath = Request.PhysicalApplicationPath + @"\Employ.xml";
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.ConformanceLevel = ConformanceLevel.Auto;
settings.IndentChars = "\t";
settings.OmitXmlDeclaration = false;
try
{
using (XmlWriter writer = XmlWriter.Create(xmlFilePath,settings))
{
//书写声明
writer.WriteStartDocument(false);
//写入标记开始
writer.WriteStartElement("employees");
writer.WriteAttributeString("xmlns", "emp", null, "urn:employees-wrox");
writer.WriteStartElement("employee", "urn:employees-wrox");
/* You can also use this approach to declare the namespace
string prefix = writer.LookupPrefix("urn:employees-wrox");
writer.WriteStartElement(prefix, "employee", null);
*/
writer.WriteAttributeString("id", "1");
writer.WriteStartElement("name", "urn:employees-wrox");
writer.WriteElementString("firstName", "urn:employees-wrox", "Nancy");
writer.WriteElementString("lastName", "urn:employees-wrox", "lastName");
writer.WriteEndElement();
writer.WriteElementString("city", "urn:employees-wrox", "Seattle");
writer.WriteElementString("state", "urn:employees-wrox", "WA");
writer.WriteElementString("zipCode", "urn:employees-wrox", "98122");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
lblResult.Text = "写入成功";
}
}
catch (Exception ex)
{
lblResult.Text = "发生错误:" + ex.Message;
}
}
![](/Images/OutliningIndicators/None.gif)
</script>
![](/Images/OutliningIndicators/None.gif)
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Writing XML File</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblResult" runat="server" />
</div>
</form>
</body>
</html>
简单的就是重载其中的几个方法就可以了
最后一个例子
将数据以二进制的方式写入XML中
主要用到System.IO文件的操作.跟XML的操作没多大的关系
![](/Images/OutliningIndicators/ContractedBlock.gif)
只需要了解其中的几个方法就好
WriteStartDocument 方法 书写版本为“1.0”并具有独立属性的 XML 声明
- WriteComment 方法 注释
WriteStartElement 方法 写出指定的开始标记
WriteAttributeString 方法 写出具有指定值的属性
WriteElementString 方法 写出包含字符串值的元素
WriteEndElement 方法 结束标记
WriteEndDocument 方法 结束标记
上面有两个标记是一一对应的.最后都要结束标记.这样就算创建一个XML文件成功了.但会发现创建的XML文件全在一行显示.
这里就要用要XmlWriterSettings来设置XML功能了
1
XmlWriterSettings settings = new XmlWriterSettings();
2
settings.Indent = true;
3
settings.ConformanceLevel = ConformanceLevel.Auto;
4
settings.IndentChars = "\t";
5
settings.OmitXmlDeclaration = false;
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
然后重载Create()方法就好了.这样创建的XML文件就不会写在一行了.
根据命名空间写入XML
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
简单的就是重载其中的几个方法就可以了
最后一个例子
将数据以二进制的方式写入XML中
1
<%@ Page Language="C#" %>
2![](/Images/OutliningIndicators/None.gif)
3
<%@ Import Namespace="System.Xml" %>
4
<%@ Import Namespace="System.IO" %>
5![](/Images/OutliningIndicators/None.gif)
6
<script runat="server">
7
void Page_Load(object sender, EventArgs e)
8
{
9![](/Images/OutliningIndicators/InBlock.gif)
10
string xmlFilePath = Request.PhysicalApplicationPath + @"\jpgexample.xml";
11
string imageFileName = Request.PhysicalApplicationPath + @"\Employee.jpg";
12
try
13
{
14
using (XmlWriter writer = XmlWriter.Create(xmlFilePath))
15
{
16
17
writer.WriteStartDocument(false);
18
writer.WriteStartElement("employee");
19
writer.WriteAttributeString("id", "1");
20
writer.WriteStartElement("image");
21
writer.WriteAttributeString("fileName", imageFileName);
22
//获取文件大小
23
FileInfo fi = new FileInfo(imageFileName);
24
int size = (int)fi.Length;
25
//读取文件
26
byte[] imgBytes = new byte[size];
27
FileStream stream = new FileStream(imageFileName, FileMode.Open);
28
BinaryReader reader = new BinaryReader(stream);
29
imgBytes = reader.ReadBytes(size);
30
reader.Close();
31
//写入数据
32
//将指定的二进制字节编码为 BinHex 并写出结果文本
33
writer.WriteBinHex(imgBytes, 0, size);
34
writer.WriteEndElement();
35
writer.WriteEndElement();
36
writer.WriteEndDocument();
37
38
writer.Flush();
39
lblResult.Text = "写入成功";
40
}
41
}
42
catch (Exception ex)
43
{
44
lblResult.Text = "发生错误: " + ex.Message;
45
}
46
}
47![](/Images/OutliningIndicators/None.gif)
48
</script>
49![](/Images/OutliningIndicators/None.gif)
50
<html xmlns="http://www.w3.org/1999/xhtml">
51
<head runat="server">
52
<title>Writing Images using XmlWriter</title>
53
</head>
54
<body>
55
<form id="form1" runat="server">
56
<div>
57
<asp:Label ID="lblResult" runat="server" />
58
</div>
59
</form>
60
</body>
61
</html>
62![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
41
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
46
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/None.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/None.gif)
主要用到System.IO文件的操作.跟XML的操作没多大的关系