MSXML的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 03:51:55
使用msxml库编辑xml文件。
在执行setAttribute()方法时我需要把一个GUID值插入属性,请问应该怎么做?
setAttribute()接受两个参数,第一个是_bstr_t name,第二个是const _variant_t & value。

1. DOM与XML

DOM是Document Object Model的缩写,提供了与XML交互的标准编程模型:(1)提供了标准方法在程序中创建、遍历或者更新XML文档内容。(2)提供了一组核心的与供应商和语言无关的应用程序编程接口(API),可满足与XML交互的大部分需求。因此,DOM APIs成为应用程序和XML文档之间互通的桥梁。

W3C(World Wide Web Consortium)DOM Level 1规范定义了两组DOM编程接口:6U6Linux联盟
(1)基本接口:W3C基本接口定义了用来在应用程序中操纵XML文档的接口;6U6Linux联盟
(2)扩展接口:W3C扩展接口定义了一些方便开发者的接口。

所有XML处理程序必须支持Unicode字符编码的两种形式:UTF-8和UTF-16。XML Parser可以读取使用ISO-8859-1、Big-5或者Shift-JIS编码的文档,并在加载文档时将它们自动转换为Unicode。

如果XML文档使用的字符编码不是UTF-8(8-bit ASCII文本也是可接受的UTF-8)或者UTF-16,那么它必须在XML声明中提供字符编码声明,否则XML Parser可能会出错。当然,即使对字符编码进行了声明,Parser也可能不能够处理(不支持该编码),但能够正确地给出提示信息。(由于XML声明是使用基本的ASCII文本书写的,Parser能够正确地读出它的内容。)

2. MSXML 4.0简介

MSXML(Microsoft XML Core Services)是Microsoft提供的用于处理XML文档的COM库。MSXML DOM不仅实现了W3C DOM Level 1规范定义的基本接口和扩展接口,还提供了额外的方法来支持XSL Transformation(XSLT)、XPath、名字空间和数据类型。MSXML除了支持规范所要求的字符编码外,还支持更多的字符编码格式,而在内部使用Unicode UCS-2字符编码处理XML文档中的所有文本。

本文以Visual C++ 6.0为开发环境,介绍MSXML4