设为首页 加入收藏

TOP

用Visual C++.NET实现XML解析(二)
2012-11-04 15:21:28 来源: 作者: 【 】 浏览:494
Tags:Visual .NET 实现 XML 解析


  生成XML文件

  在你能更多地处理XML之前,你需要了解如何格式化XML文件,以及如果生成它。我假定你已经知道了如何格式化XML文件。列表2显示了生成XML的一个简单的方法。

  列表2.使用.NET生成XML文件

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数据的示例程序

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC实现DirectShow全屏播放视频 下一篇VC实现卡拉OK字幕叠加

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: