??图八中代码演示了把一个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();
}
}
以上就是在.NET Framework中轻松处理XML数据(4-3) 的内容,更多相关内容请关注PHP中文网(www.php.cn)!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号