ASP.NET中创建XML

by 好大一小白 2010.5.2 12:39

希望将数据置为一种更结构化的形式,如置于一个XML文档中。

这里介绍.NET中常用的两种生成XML的方法:(用string拼XML的方法就不介绍了)

例如有数据:

名字 电话
Tim 999-888-0000
Newman 666-666-6666
Harold 777-555-3333

 

使用XmlWriter为这个表创建XML:

XmlWriterSettings settings = new XmlWriterSettings();
            settings.Indent = true;
            using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
            {
                writer.WriteStartElement("AddressBook");
                writer.WriteStartElement("Contact");
                writer.WriteAttributeString("name", "Time");
                writer.WriteAttributeString("phone", "999-888-0000");
                writer.WriteEndElement();
                writer.WriteStartElement("Contact");
                writer.WriteAttributeString("name", "Newman");
                writer.WriteAttributeString("phone", "666-666-6666");
                writer.WriteEndElement();
                writer.WriteStartElement("Contact");
                writer.WriteAttributeString("name", "Harold");
                writer.WriteAttributeString("phone", "777-555-3333");
                writer.WriteEndElement();
                writer.WriteEndElement();
            }

输出结果:

<?xml version="1.0" encoding="gb2312"?>
<AddressBook>
  <Contact name="Time" phone="999-888-0000" />
  <Contact name="Newman" phone="666-666-6666" />
  <Contact name="Harold" phone="777-555-3333" />
</AddressBook>

 

或者,也可以通过XmlDocument类通过编程来构造XML:

 

XmlDocument xmlDoc = new XmlDocument();
           XmlElement addrBook = xmlDoc.CreateElement("AddressBook");
           xmlDoc.AppendChild(addrBook);
           XmlElement contact = xmlDoc.CreateElement("Contact");
           contact.SetAttribute("name", "Time");
           contact.SetAttribute("phone", "999-888-0000");
           addrBook.AppendChild(contact);
           contact = xmlDoc.CreateElement("Contact");
           contact.SetAttribute("name", "Newman");
           contact.SetAttribute("phone", "666-666-6666");
           addrBook.AppendChild(contact);
           contact = xmlDoc.CreateElement("Contact");
           contact.SetAttribute("name", "Harold");
           contact.SetAttribute("phone", "777-555-3333");
           addrBook.AppendChild(contact);
           Console.WriteLine(addrBook.OuterXml);
           Console.ReadLine();

输出结果:

<AddressBook><Contact name="Time" phone="999-888-0000" /><Contact name="Newman" phone="666-666-6666" /><Contact name="Harold" phone="777-555-3333" /></AddressBook>

 

具体该使用那种方法呢?

      XmlDocument使用传统的DOM方法与XML交互,而XmlReader/XmlWriter组合则通过流处理XML。如果处理比较大的文档,可能最好使用XmlReader/XmlWriter组合,这要优于XmlDocument。如果不需要把整个文档都放入内存,则这两种方法中XmlReader/XmlWriter组合的表现会更好。如果需要取回所写的内容,或者不按顺序写数据项,就要使用XmlDocument。

Tags: , , , , ,

WEB开发 | ASP.NET

不允许评论

微信赞

本站统计

36 篇文章
5 个单页
12 条评论
12 次评分
1315506 次访问
访问统计开始于 2010年4月24日
平均日访问 224 次
当前 2 人在线

声明

本博所有网友评论不代表本博立场,版权归其作者所有。 
苏ICP备09004001号
Powered by BlogYi.net  edit by 1wanweb.com
© Copyright 2008-2017