学习Professional ASP.NET 2.0 XML(二)
2006-04-16 12:31 Clingingboy 阅读(665) 评论(0) 编辑 收藏 举报
这次继续学习XML编写器.直接看代码吧.比较简单
只需要了解其中的几个方法就好
WriteStartDocument 方法 书写版本为“1.0”并具有独立属性的 XML 声明
然后重载Create()方法就好了.这样创建的XML文件就不会写在一行了.
根据命名空间写入XML
<%@ Page Language="C#" %>

<%@ Import Namespace="System.Xml" %>

<script runat="server">
void Page_Load(object sender, EventArgs e)
{

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;
}
}

</script>

<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的操作没多大的关系

只需要了解其中的几个方法就好
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;

2

3

4

5

然后重载Create()方法就好了.这样创建的XML文件就不会写在一行了.
根据命名空间写入XML


































































简单的就是重载其中的几个方法就可以了
最后一个例子
将数据以二进制的方式写入XML中
1
<%@ Page Language="C#" %>
2
3
<%@ Import Namespace="System.Xml" %>
4
<%@ Import Namespace="System.IO" %>
5
6
<script runat="server">
7
void Page_Load(object sender, EventArgs e)
8
{
9
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
48
</script>
49
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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

主要用到System.IO文件的操作.跟XML的操作没多大的关系
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现