扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:陶刚编译 来源:yesky 2007年11月16日
关键字:
System::Void btnGenerate_Click(System::Object * sender, System::EventArgs * e) { XmlTextWriter* DataWrite; // 执行实际的数据写入 // 建立数据写入程序 DataWrite = new XmlTextWriter(txtFilename->Text, System::Text::Encoding::UTF8); // 写入XML头。当你把这个函数设置为true的时候,.NET建立独立的文档 DataWrite->WriteStartDocument(true); DataWrite->WriteWhitespace("\r\n"); // 描述测试文件 DataWrite->WriteComment("This is a test document."); DataWrite->WriteWhitespace("\r\n"); // 启动文档。你必须指定true来建立一个有根元素的新文档。 // 包含根元素失败将导致一个错误产生。 // 本示例包含了一个名字空间前缀、元素的本地名称和于名字空间关联的URL。 DataWrite->WriteStartElement("Data", "MyData", "http://www.mysite.com/"); DataWrite->WriteWhitespace("\r\n"); // 把数据写入文档 DataWrite->WriteElementString("DataString1", txtData->Text); DataWrite->WriteWhitespace("\r\n"); // 用特定的属性写入相同的数据 DataWrite->WriteStartElement("DataString2"); DataWrite->WriteAttributeString("AnAttribute", "AttributeValue"); DataWrite->WriteString(txtData->Text); DataWrite->WriteEndElement(); DataWrite->WriteWhitespace("\r\n"); // 终止起初的元素或文档的根元素。 DataWrite->WriteEndElement(); // 终止文档 DataWrite->WriteEndDocument(); // 关闭文档。该调用包括把缓冲区的内容写入磁盘的功能。 DataWrite->Close(); // 显示文档是完整的。 MessageBox::Show("File Generated", "XML Generation Results", MessageBoxButtons::OK, MessageBoxIcon::Information); } |
在这个例子中,你建立XmlTextWriter对象--DataWrite的时候, XML写入事务就开始了。你使用了特定的方法写入XML文档输出。.NET框架组件要求你使用某些方法生成良好格式化的XML。例如,你必须使用WriteStartDocument()方法来定义文档的开始,它是XML头。当你使用WriteEndDocument()方法来关闭这种标志,使用Close()把文档缓冲区的内容写入磁盘,并执行实际的文件关闭的时候,写入对话终止。
XML文档需要根元素。第一个WriteStartElement()调用和相关的WriteEndElement()调用建立这种根元素。示例给出了根元素中的两种类型的子元素。第一种演示了如何使用WriteElementString()方法写入把没有属性的字符串。第二种演示了如何使用WriteAttributeString()方法给元素添加属性。
示例也包含了少量可选的元素。有些开发者不关心输出文件是如何出现的,但是我通常在文本编辑器中查看输出。使用WriteWhitespace()方法添加一个回车符和制表符(如果希望的话)将使结果文件更容易在文本编辑器中阅读。当然,类似Internet Explorer的应用程序和Visual Studio IDE不会关心空格的。
你也可能希望在记录文件中包括注释。你可以使用WriteComment()方法完成这种事务。图1显示了输出在Internet Explorer中查看的时候看到的生成循环。
图1.生成典型的XML数据的示例程序
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者