天极IT资讯短信服务 电脑小技巧 | 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。 | |
摘要:了解如何在 Microsoft Windows .NET Compact Framework 应用程序中使用和管理可扩展标记语言 (XML)。XML 在移动应用程序开发中最常见的用法是用于与服务器端应用程序通信。如果数据量适中,XML 还可以用作本地存储格式,取代本地的关系数据库。要了解有关通信和本地存储方案的示例,请继续阅读。本文中的示例代码是用 Microsoft Visual Basic .NET 编写的。
简介
在 .NET Compact Framework 中,主要有三种方法可以与 XML 配合使用:
1、使用 XmlReader and XmlWriter 类
2、使用 XmlDocument 类,该类是文档对象模型 (DOM) 的实现
3、使用 ADO.NET DataSet 类,该类可以读取和写入本地存储的 XML 文件
XmlDocument 类提供了 XML 文档的分层表示形式,并且提供了丰富的动态功能集以便与 XML 数据配合使用。由于 XmlDocument 将整个 XML 文档都存放在内存中,并且与其他方案相比并非最快,因此此方法仅适用于较小的 XML 文档(小于 1 MB)。
XmlReader 和 XmlWriter 在连续读取和写入 XML 数据时比 XmlDocument 快得多。这些类是带有 XmlTextReader 和 XmlTextWriter 类中实现的方法的抽象类。
在服务器和移动客户端上利用 .NET Framework 技术的项目通常会针对 ADO.NET 数据集对数据交换进行标准化。数据集(包括其数据和架构)可以使用 WriteXml 和 WriteXmlSchema 方法存储为 XML 文件,也可以使用方法 GetXml 和 GetXmlSchema 实例化和填充。
要使用任何 XML 相关的类,您必须使用 Microsoft? Visual Basic? .NET 中的 Imports System.XML 语句或使用 C# 中的 using System.XML 声明将 System.XML 命名空间导入到您的类中。有关 XML 的信息,请参阅 http://www.w3.org/xml 上的 XML 1 规范。此处引用的示例代码是使用 Microsoft Visual Studio .NET 2003、C# 和 .NET Compact Framework 创建的。示例中使用的数据库是 Northwind 数据库。一些示例代码依赖于 SQLXML 3.0 中的托管代码。
使用 XmlReader 类
XmlReader 类可以从 URL、流和文件中读取 XML。以下示例显示了如何实现 XmlReader。
代码演示
示例代码构建在以下三层中:
1、数据库(存储过程)
2、Web 服务
3、Pocket PC 应用程序
让我们从数据库开始。Northwind 数据库有一个“Products”表,可以将其中的数据转换为 XML 格式。为了以 XML 格式获取结果集,SELECT 语句中使用了“FOR XML AUTO, ELEMENTS”关键字。
CREATE PROCEDURE GetProducts AS
SET NOCOUNT ON
SELECT ProductID, ProductName, UnitsInStock, UnitsOnOrder, ReorderLevel FROM Products FOR XML AUTO, ELEMENTS | 从这里开始,会有一些选择。常见的选择为:是通过 Web 服务提供存储过程,还是使用 SQLXML 3.0 直接从 SQL Server 2000 提供存储过程。在本例中,XML 直接从 SQL Server 2000 传递。有关如何完成此操作的详细信息,请参阅 MSDN? Magazine 文章 Build Data-Driven Web Services with Updated XML Support for SQL Server 2000。最后,以下代码在 Pocket PC 应用程序中实现了 XmlTextReader:
Dim xmlreader As New XmlTextReader("http://servername/Northwind1/Products.xml") xmlreader.WhitespaceHandling = WhitespaceHandling.None xmlreader.MoveToContent() While xmlreader.Read ' 循环通过 XmlTextReader... Select Case xmlReader.Name Case "firstName" customer.firstName = xmlReader.ReadString Case "lastName" customer.lastName = xmlReader.ReadString Case "zip" customer.zip = Integer.Parse(xmlReader.ReadString) End Select End While xmlreader.Close() | 如果要快速顺序读取 XML,XMLReader 是一个非常优秀的结构。
|
|