VC++使用CMarkup类操作XML文件详解

需积分: 9 10 下载量 92 浏览量 更新于2024-07-22 收藏 64KB DOC 举报
"这篇文章主要介绍了在VC++环境中如何利用CMarkup类进行XML文件的操作,包括创建、读取、修改和浏览XML文档。" 在VC++编程中,处理XML文件是常见的任务,CMarkup是一个方便的类库,它使得在C++中操作XML变得简单。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,广泛应用于配置文件、数据交换等领域。CMarkup类提供了友好的API来解析和操作XML文档。 首先,XML中有一些特殊字符需要转义,例如`&`需要写成`&amp;`,`>`需要写成`&gt;`,`<`需要写成`&lt;`,`"`需要写成`&quot;`,`'`需要写成`&apos;`,以避免混淆XML解析器。在手动编写XML时,必须遵循这些规则。 CMarkup类的源代码可以从官方网站获取,如http://www.firstobject.com/Markup83.zip,包含`Markup.cpp`和`Markup.h`两个文件,将它们引入到你的项目中即可开始使用CMarkup类。 创建XML文档时,可以通过CMarkup类的`AddElem`方法添加元素,如以下示例所示: ```cpp CMarkup xml; xml.AddElem("ORDER"); xml.AddChildElem("ITEM"); xml.IntoElem(); xml.AddChildElem("SN", "132487A-J"); xml.AddChildElem("NAME", "crankcasing"); xml.AddChildElem("QTY", "1"); xml.Save("c:\\UserInfo.xml"); ``` 这将生成如下XML结构: ```xml <ORDER> <ITEM> <SN>132487A-J</SN> <NAME>crankcasing</NAME> <QTY>1</QTY> </ITEM> </ORDER> ``` 浏览XML文档中的特定元素,可以使用`FindChildElem`方法定位元素,然后通过`IntoElem`和`OutOfElem`进入和退出元素,`GetChildData`获取元素的文本内容。例如,查找并读取`ITEM`元素的`SN`和`QTY`: ```cpp CMarkup xml; xml.Load("UserInfo.xml"); while (xml.FindChildElem("ITEM")) { xml.IntoElem(); CString csSN = xml.GetChildData("SN"); int nQty = atoi(xml.GetChildData("QTY")); xml.OutOfElem(); } ``` 对于元素的添加,可以使用`AddElem`方法添加到末尾,或者`InsertElem`方法添加到指定位置。例如,要在`ORDER`元素的开头添加新的`ITEM`: ```cpp CMarkup xml; xml.Load("c:\\UserInfo.xml"); xml.AddElem("ORDER"); xml.IntoElem(); xml.AddElem("ITEM"); // 添加到末尾 xml.IntoElem(); xml.AddElem("SN", "4238764-A"); xml.AddElem("NAME", "bear"); xml.OutOfElem(); // 退出ITEM xml.OutOfElem(); // 退出ORDER ``` 以上就是使用VC++中的CMarkup类对XML文件进行基本操作的方法,包括创建、读取、浏览和修改XML文档。通过这个类库,开发者可以轻松地处理XML数据,实现程序与XML文件的交互。