CMarkup 入门(增删改查)
来源:互联网 发布:苹果版手机淘宝 编辑:程序博客网 时间:2024/05/01 19:43
CMarkup是一个比较好的C++ xml解析库。
官网:http://www.firstobject.com/dn_markup.htm。
主要操作代码:
// xml_CMarkup.cpp : 定义控制台应用程序的入口点。////CRUD 增加(Create)、读取(Read)、更新(Update)和删除(Delete)#include "stdafx.h"#include "Markup.h"#include <iostream>#include <string>using namespace std;#define _CREATE//#define _ADD//#define _DELETE//#define _UPDATE//#define _READint _tmain(int argc, _TCHAR* argv[]){#ifdef _CREATE //创建一个 XML Document CMarkup xml; xml.AddElem("ORDER");//unicode 需要加: _T()或_TEXT xml.IntoElem(); xml.AddElem("ITEM"); xml.IntoElem(); xml.AddElem("SN", "132487A-J"); xml.AddElem("NAME", "crank casing"); xml.AddElem("QTY", "1"); xml.Save("d:\\UserInfo.xml");//保存到文件 //------------------------- string strXML = xml.GetDoc();//读文件内容到字符串 (MCD_STR or std::string or CString) cout << strXML << endl;#endif#ifdef _ADD //增加元素和属性 //添加在最后面, 使用的是AddElem; 添加在最前面, 使用InsertElem。 CMarkup xml; if (!xml.Load("d:\\UserInfo.xml")); // return 1; xml.AddElem("ORDER"); xml.IntoElem(); // 进入 ORDER xml.AddElem("ITEM"); xml.IntoElem(); // 进入 ITEM xml.AddElem("SN", "4238764-A"); //添加元素 xml.AddElem("NAME", "bearing");//添加元素 xml.AddElem("QTY", "15");//添加元素 xml.OutOfElem(); // 退出 ITEM xml.AddElem("SHIPMENT"); xml.IntoElem(); // 进入 SHIPMENT xml.AddElem("POC");//添加元素 xml.SetAttrib("type", "non-emergency");//添加属性 xml.IntoElem(); // 进入 POC xml.AddElem("NAME", "John Smith");//添加元素 xml.AddElem("TEL", "555-1234");//添加元素 xml.Save("d:\\UserInfo.xml");#endif#ifdef _DELETE //删除元素: 删除SN = 132487A - J的项目。 CMarkup xml; xml.Load("d:\\UserInfo.xml"); string strUserID = _T(""); xml.ResetMainPos(); if (xml.FindChildElem("ITEM")) { xml.IntoElem(); string str_sn; xml.FindChildElem("SN"); str_sn = xml.GetChildData(); if (str_sn == "132487A-J") { xml.RemoveElem(); xml.Save("d:\\UserInfo.xml"); } }#endif#ifdef _UPDATE //修改元素和属性--------- CMarkup xml; if (xml.Load("d:\\UserInfo.xml"))//格式不正确可能导致load失败 { string strUserID = _T(""); xml.ResetMainPos(); if (xml.FindChildElem("SHIPMENT")) { xml.IntoElem(); if (xml.FindChildElem("POC")) { xml.IntoElem(); string str_type = xml.GetAttrib("type"); xml.SetAttrib("type", "change"); strUserID = xml.GetData(); if (xml.FindChildElem("TEL")) { xml.IntoElem(); xml.SetData("99999999"); xml.Save("d:\\UserInfo.xml"); return 0; } } } }#endif#ifdef _READ //查找元素 CMarkup xml; xml.Load("d:\\UserInfo.xml");//From a file with Load //xml.SetDoc(strXML);//Or from an XML string with SetDoc xml.FindElem(); // root ORDER element xml.IntoElem(); // inside ORDER while (xml.FindElem("ITEM")) { xml.IntoElem(); xml.FindElem("SN"); MCD_STR strSN = xml.GetData(); cout << strSN << endl; xml.FindElem("QTY"); int nQty = atoi(MCD_2PCSZ(xml.GetData()));//MCD_2PCSZ is defined in Markup.h to return the string's const pointer. cout << nQty << endl; xml.OutOfElem(); } //查找元素1 xml.IntoElem(); xml.FindElem("SN"); MCD_STR strSN = xml.GetData(); xml.ResetMainPos(); xml.FindElem("QTY"); int nQty = atoi(MCD_2PCSZ(xml.GetData())); cout << nQty << endl; xml.OutOfElem(); //查找元素2 xml.ResetPos(); // top of document xml.FindElem(); // ORDER element is root xml.IntoElem(); // inside ORDER while (xml.FindElem("ITEM")) { xml.FindChildElem("SN"); if (xml.GetChildData() == "4238764-A"){ cout << "Found!" << endl; break; // found } else{ cout << "Not Found!" << endl; } }#endif return 0;}
1 0
- CMarkup 入门(增删改查)
- Mybatis入门--增删改查
- 数据库入门---增删改查
- mongodb入门--增删改查
- MyEclipe+Hibernate增删查改快速入门
- Android入门:增删改查通讯录
- Android入门:增删改查通讯录
- Android入门:增删改查通讯录
- C++增删改查sqlite入门
- Android入门:增删改查通讯录
- Android入门:增删改查通讯录
- Android入门:增删改查通讯录
- Mybatis_mysql入门案例--增删改查
- Android入门:增删改查通讯录
- Android入门:增删改查通讯录
- C++增删改查sqlite入门
- Hibernate概述和增删改查入门
- ibatis 入门例子 增删改查
- Linux系统下安装配置Nginx的详细过程
- hibernate3和hibernate4 query.setParameter(i,list.get(i))
- C#设置子窗体在主窗体中居中显示解决方案
- Didn't find class “android.support.v7.internal.widget.TintManager” on path
- java_juc_同步工具集
- CMarkup 入门(增删改查)
- HBase数据备份
- [高斯消元与线性基]
- MySQL 5.7 root登录问题
- VM的几种网络连接方式
- Android设置textview的字体之间的间距
- IIC总线协议总结
- js中如何定义常量
- 更换CentOS的下载源为阿里源