编写XML XmlTextWriter与XmlDocument

转载 2007年10月09日 08:48:00

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创建文档就比较好。

 

C#操作Xml:通过XmlDocument读写Xml文档

转自:http://www.cnblogs.com/yukaizhao/archive/2011/07/19/csharp_xmldocument_access_xml.html X...
  • lyljp
  • lyljp
  • 2016年10月09日 16:15
  • 1810

object 与xml的转换读取

1.object ====> xml XmlDocument doc = new XmlDocument();  XmlElement Root = doc.CreateElement("Tabl...
  • aabbjj
  • aabbjj
  • 2015年03月05日 17:15
  • 756

unity 移动端(仅安卓)读写Xml

翻别人的博客,翻来翻去试来试去,翻到了一些东西,撞来撞去后终于撞到对的结果 之前总感觉好难啊,不想看啊,跳了。后来还是躲不过。移动端的路径什么的还是要弄懂啊, 路径一直是个...
  • ou_nvhai
  • ou_nvhai
  • 2017年12月19日 00:53
  • 60

创建跨浏览器Javascript的XMLDocument对象

在用javascript操作xml的过程中,遇到最大的问题就是跨浏览器兼容。我解决的思路是:是运用外观模式,得到不同浏览器所需XmlDocument对象。但在不同浏览器下的XmlDocument对象又...
  • suleil1
  • suleil1
  • 2015年10月28日 16:54
  • 156

C#操作Xml:通过XmlDocument读写Xml文档

http://www.cnblogs.com/yukaizhao/archive/2011/07/19/csharp_xmldocument_access_xml.html 什么是X...
  • u011854789
  • u011854789
  • 2017年11月21日 11:45
  • 56

[Unity3D]适用于UWP的XmlDocument使用方法

本篇演示XmlDocument既可在UWP中使用又可在Unity3D编辑器中使用的方法。
  • u012741077
  • u012741077
  • 2016年08月10日 01:39
  • 1421

Cocos2d-x XML文件读取操作与解析操作

1、 void BB:: File() {     //从app中读取文件(本项目)     std::string path=CCFileUtils::sharedFil...
  • u011269801
  • u011269801
  • 2014年09月15日 09:20
  • 1540

vb 操作xml方法总结

Private Sub xxx(ByVal xmlStr As String) ''初始化xml文档 Dim xmlDoc As New XmlDocument ...
  • yuewei19
  • yuewei19
  • 2014年12月11日 15:21
  • 2784

Lua_绑定tinyxml到Lua中解析XML

// XMLHelper.h class lua_State; // register parser functions to lua void RegisterLuaXML(lua_State ...
  • c201038795050
  • c201038795050
  • 2015年07月18日 21:15
  • 1310

通过XmlDocument读写Xml文档

通过XmlDocument读写Xml文档 什么是Xml? Xml是扩展标记语言的简写,是一种开发的文本格式。关于它的更多情况可以通过w3组织了解http://www.w3.org/TR/1...
  • xiang_F_Y
  • xiang_F_Y
  • 2013年06月18日 13:52
  • 460
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编写XML XmlTextWriter与XmlDocument
举报原因:
原因补充:

(最多只允许输入30个字)