科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用Visual C++.NET实现XML解析

用Visual C++.NET实现XML解析

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文解释了在VC.NET中解析XML的方法和技巧

作者:陶刚编译 来源:yesky 2007年11月16日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
生成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数据的示例程序

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章