Maison >développement back-end >Tutoriel C#.Net >在.NET Framework中轻松处理XML数据(4-3)

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

黄舟
黄舟original
2016-12-20 14:15:271416parcourir

??图八中代码演示了把一个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)! 


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn