VC下XML解析类 CXMLParse 指南
来源:互联网 发布:papi酱人气下滑 知乎 编辑:程序博客网 时间:2024/05/21 11:23
说明
CXMLParse类最初版本来自于codeproject.com
http://download.csdn.net/source/534628
在多年的使用过程中,做了一些自己的升级,
包括:
1.修改了一些原作者的bug
2.添加了对中文解析的支持
3.去除了对于mfc的依赖,出口改为STL C++
常用接口函数
1.bool Load( const char * szFileName ); 从xml文件加载XML文档内容
2.bool Save( const char * szFileName ); 存档
3.AddElem 添加节点
4.AddChildElem 添加子节点
5. AddAttrib 添加节点属性
6. AddChildAttrib 添加子节点属性
7.IntoElem 进入子节点
8.OutOfElem 从子节点跳出
范例
1.文档载入与保存
CXMLParse xml;
xml.Load("C://demo.xml");
xml.Save("C://export.xml");
2.XML文档创建
CXMLParse xml;
xml.AddElem("Demo");
xml.AddChildElem("Child");
xml.AddChildAttrib("Name","Nieo");
xml.AddChildAttrib("Sex",1);
形成的XML内容为
<Demo><Child Name="Nieo" Sex="1"/></Demo>
3.多层XML文档创建
CXMLParse xml;
xml.AddElem("Demo");
xml.AddChildElem("Root");
xml.IntoElem();
xml.AddChildElem("Child");
xml.AddChildAttrib("Name","Nieo");
xml.AddChildElem("Child");
xml.AddChildAttrib("Name","Simen")
xml.OutofElem();
形成的XML内容为
<Demo><Root><Child Name="Nieo"/><Child Name="Simen"/></Root></Demo>
4.XML文档解析以如下文档为例
<Html>
<Header><meta name="author" content="Csdn" /> </Header>
<Body><Nieo Sex="1" Nickname="NieoDing"/></Body></Html>
要查找到Nieo的Nickname
CXMLParse xml;
xml.Load(.....);
xml.FindChildElem("Body");
xml.IntoElem();
if(xml.FindChildElem("Nieo"))
{
string nickname = xml.GetChildAttrib("NickName")
}
5.std::string与CXMLParse的交互
CXMLParse -> std::string
CXMLParse xml;
.........
std::string doc = xml.GetDoc();
std::string -> CXMLParse
std::string doc = "<body>.....</body>";
CXMLParse xml(doc.c_str());
不依赖xml文件的情况下,解析、发送xml格式的码流
void CtestxmlDlg::OnBnClickedMakexml()
{
// TODO: 在此添加控件通知处理程序代码
CXMLParse xml;
xml.AddElem("配置");
xml.AddChildElem("开户行");
xml.AddChildAttrib("property","工行石家庄分行");
xml.AddChildAttrib("sss","ddd");
xml.AddChildElem("代理号");
xml.AddChildAttrib("property","06368");
xml.Save("C://test.xml");
xml.Load("C://test.xml");
if(xml.FindElem("配置"))
AfxMessageBox("FIND");
else
AfxMessageBox("NOTFIND");
}
运行结果为:NOTFIND,但是如果把“配置”改成英文的结果就是FIND,你的类好像在解析时不能支持中文
- VC下XML解析类 CXMLParse 指南
- VC下XML解析类 CXMLParse 指南
- 转载:VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- VC解析XML--使用CMarkup类解析XML
- uva694
- Cocos-2d 详解CCTouchDispatche类和触摸注册原理
- 流输出图片到JSP页面:Image to Byte Array and Byte Array to Image
- Android中Bitmap和Drawable
- 为什么Linux不需要磁盘碎片整理
- VC下XML解析类 CXMLParse 指南
- Android实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- readme
- Android应用截图和SurfaceView截图问题总结
- DECLARE CONTINUE HANDLER FOR NOT FOUND 解释
- oracle 索引失效原因及解决方法
- [设计模式笔记]三. 行为型模式--17. Interpreter模式(解释器模式)(二)
- 逆波兰式(中缀表达式转成后缀表达式)
- 文件操作函数小结