用VisualC .NET实现XML解析

2008-04-09 04:09:11来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。(首月免费)

  对于多数开发者来说,Web服务已经成为某种固定不变的东西了,因为他们把Internet看作是促进应用程序应用的最好途径。一些Web服务(例如Amazon.com Web服务)是公共的,并且很容易被要求把这种服务包含在应用程序中。其它一些Web服务是私有的,并且需要访问的特定知识。无论涉及哪种Web服务,他们都依赖XML传递数据。因此,在提到Web服务的时候,XML解析是开发者想到的第一件事。

  XML解析的其它用途

  XML解析并不仅仅局限于Web服务,例如.NET应用程序就能使用XML作为配置信息的存储方法。你需要做的事情就是拥有一个.MANIFEST文件,它的名称必须与应用程序的名称相同,CLR(通用语言运行时)会自动查阅这个文件找到配置信息。

  例如,列表1显示了添加给一个.MANIFEST文件的XML。这个清单告诉CLR使用Windows XP主题信息绘制标准控件(该配置文件不会影响自己绘制的控件)。注意该文件的版本号可能改变,可以在系统的\WINDOWS\WinSxS文件夹下查看当前的版本号。这个并行库的文件夹的名称可能类似x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.0.0_x-ww_1382d70a,列表1中显示的processorArchitecture值最先出现,接着出现名称(name)值,然后出现publicKeyToken值,最后出现版本(version)值。

  列表1..NET.MANIFEST文件依赖XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32"
name="ShowMessage"
version="1.0.0.0"
processorArchitecture="x86"
/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

  你也可以建立其它类型的配置文件,你的应用程序可以在启动过程中分析它。这些文件可以包含应用程序执行需要的任何信息。你可以使用这些配置文件代替注册表设置项。通常,你会发现使用XML文件比使用注册表少一些错误,并且它们也更灵活。例如,把一个用户从一台计算机迁移到另一台计算机的时候,就不一定需要重新配置应用程序,因为设置信息已经出现在该应用程序的目录中了。在某些角度上,这意味着我们又回到了过去使用INI文件的情形,但是XML文件包含的信息比INI文件多得多,并且会减少一定形式的损坏和配置错误。

  当结合其它一些技术(例如可扩充样式表语言转换,XSLT)的时候,XML可以使Web页面更容易阅读。但是,你也能把这类技术应用于内部。例如,很多公司把这种形式的XML作为建立用户使用的帮助文件的一种方法。这种帮助信息作为XML文件中的数据出现,浏览器可以使用XSLT文件把它转换为可视化的输出。应用程序可以使用兼容HTML的控件显示这种信息。至于用户,他们不管数据来自标准的帮助文件或另一个信息源。

  最终,XML可能成为一种主要的数据存储技术。有些厂商已经讨论他们的XML产品了。你也可以找到一些XML存储产品,例如微软Office。简单的说,你最终可能发现为了载入数据和显示数据,需要在应用程序中包含分析能力。



  生成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");

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:VisualC 中的ODBC编程实例

下一篇:用VisualC 设计窗体探测器

热门词条
热门标签