您的位置:首页 > 其它

编写XML XmlTextWriter与XmlDocument

2007-09-10 10:06 211 查看
XmlTextWriter类可以把XML写入一个流、文件或TextWriter对象中。



简单例子:

private void button2_Click(object sender, System.EventArgs e)

{

string filename = "booknew.xml";

XmlTextWriter tw = new XmlTextWriter(filename,null);

tw.Formatting = Formatting.Indented;

tw.WriteStartDocument();

tw.WriteStartElement("book");

tw.WriteAttributeString("genre","Mystery");

tw.WriteAttributeString("publicationdate","2001");

tw.WriteAttributeString("ISBN","123456789");

tw.WriteElementString("title","Case of the Missing Cookie");

tw.WriteStartElement("author");

tw.WriteElementString("name","Cookie Monster");

tw.WriteEndElement();

tw.WriteElementString("price","9.99");

tw.WriteEndElement();

tw.WriteEndDocument();

tw.Flush();

tw.Close();

}

代码生成后的xml文档booksnew.xml:

<?xml version="1.0"?>

<book genre="Mystery" publicationdate="2001" ISBN="123456789">

<title>Case of the Missing Cookie</title>

<author>

<name>Cookie Monster</name>

</author>

<price>9.99</price>

</book>

可以看出,在XML文档中,有一个起始方法和结束方法(WriteStartElement和WriteEndElement),其他专用的写入方法:WriteCData可以输入一个Cdata;WriteComment以正确的XML格式写入注释。WriteChars写入字符缓冲区的内容。

利用.NET DOM,XmlDocument创建一个文档

private XmlDocument doc= new XmlDocument();

private void button2_Click(object sender, System.EventArgs e)

{

XmlDeclaration newDec = doc.CreateXmlDeclaration("1.0",null,null);

doc.AppendChild(newDec);

XmlElement newRoot = doc.CreateElement("newBookstore");

doc.AppendChild(newRoot);

//创建一个新的book元素

XmlElement newBook = doc.CreateElement("book");

//创建并设置book元素的属性

newBook.SetAttribute("genre","Mystery");

newBook.SetAttribute("publicationdate","2001");

newBook.SetAttribute("ISBN","123456789");

//创建一个title元素

XmlElement newTilte = doc.CreateElement("title");

newTilte.InnerText ="Case of the Missing Cookie";

newBook.AppendChild(newTilte);

//创建author元素

XmlElement newAuthor = doc.CreateElement("author");

newBook.AppendChild(newAuthor);

XmlElement newName = doc.CreateElement("name");

newName.InnerText = "C.Monster";

newAuthor.AppendChild(newName);

XmlElement newPrice = doc.CreateElement("price");

newPrice.InnerText = "9.95";

newBook.AppendChild(newPrice);

doc.DocumentElement.AppendChild(newBook);

XmlTextWriter tr = new XmlTextWriter("booksEdit.xml",null);

tr.Formatting = Formatting.Indented;

doc.WriteContentTo(tr);

tr.Close();

}

代码生成后的文档:

<?xml version="1.0"?>

<newBookstore>

<book genre="Mystery" publicationdate="2001" ISBN="123456789">

<title>Case of the Missing Cookie</title>

<author>

<name>C.Monster</name>

</author>

<price>9.95</price>

</book>

</newBookstore>

如果从头开始创建一个文档,可以使用XmlTextWrite。还可以使用XmlDocument。使用哪个比较好?如果要写入Xml流的数据已经准备好,最好的选择用XmlTextWriter类,但是如果需要一次建立Xml文档的一小部分,在不同的地方插入节点,用XmlDocument创建文档就比较好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: