频道栏目
首页 > 资讯 > XML教程 > 正文

在.NET Framework中轻松处理XML数据(4-3)

16-01-06        来源:[db:作者]  
收藏   我要投稿
??图八中代码演示了把一个string数据转换为Base64 编码的XML流。图九是输出的成果。


Figure 8 Persisting a String Array as Base64

using System;

using System.Text;

using System.IO;

using System.Xml;



class MyBase64Array

{

public static void Main(String[] args)

{

string outputFileName = 'test64.xml';

if (args.Length > 0)

outputFileName = args[0]; // file name



// 把数组转换成XML

String[] theArray = {'Rome', 'New York', 'Sydney', 'Stockholm',

'Paris'};



CreateOutput(theArray, outputFileName);

return;

}



private static void CreateOutput(string[] theArray, string filename)

{

// 打开XML writer

XmlTextWriter xmlw = new XmlTextWriter(filename, null);

//使子元素根据 Indentation 和 IndentChar 设置缩进。此选项只对元素内容进行缩进

xmlw.Formatting = Formatting.Indented;

//书写版本为“1.0”的 XML 声明

xmlw.WriteStartDocument();

//写出包含指定文本的注释

xmlw.WriteComment('Array to Base64 XML');

//开端写出array节点

xmlw.WriteStartElement('array');

//写出具有指定的前缀、本地名称、命名空间 URI 和值的属性

xmlw.WriteAttributeString('xmlns', 'x', null, 'dinoe:msdn-mag');

// 循环的写进array的子节点

foreach(string s in theArray)

{

//写出指定的开端标记并将其与给定的命名空间和前缀关联起来

xmlw.WriteStartElement('x', 'element', null);

//把S转换成byte[]数组, 并把byte[]数组编码为 Base64 并写出成果文本,要写进的字节数为s总长度的2倍,一个string占的字节数是2字节。

xmlw.WriteBase64(Encoding.Unicode.GetBytes(s), 0, s.Length*2);

//封闭子节点

xmlw.WriteEndElement();

}

//封闭根节点,只有两级

xmlw.WriteEndDocument();



// 封闭writer

xmlw.Close();



// 读出写进的内容

XmlTextReader reader = new XmlTextReader(filname);

while(reader.Read())

{

//获取节点名为element的节点

if (reader.LocalName == 'element')

{



byte[] bytes = new byte[1000];

int n = reader.ReadBase64(bytes, 0, 1000);

string buf = Encoding.Unicode.GetString(bytes);



Console.WriteLine(buf.Substring(0,n));

}

}

reader.Close();



}

}



相关TAG标签
上一篇:在.NET Framework中轻松处理XML数据(3-2)
下一篇:在.NET Framework中轻松处理XML数据(5-1)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站