一个是用tinyxml遍历xml的源码
来源:互联网 发布:淘宝买防静电鞋 编辑:程序博客网 时间:2024/05/21 16:58
// XMLConsole.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "tinyxml.h"// ———————————————————————-// STDOUT输出和缩进实用函数// ———————————————————————-const unsigned int NUM_INDENTS_PER_SPACE=2;const char * getIndent( unsigned int numIndents ){static const char * pINDENT=" + ";static const unsigned int LENGTH=strlen( pINDENT );unsigned int n=numIndents*NUM_INDENTS_PER_SPACE;if ( n > LENGTH ) n = LENGTH;return &pINDENT[ LENGTH-n ];}// 与getIndent相同,但最后没有“+”const char * getIndentAlt( unsigned int numIndents ){static const char * pINDENT=" ";static const unsigned int LENGTH=strlen( pINDENT );unsigned int n=numIndents*NUM_INDENTS_PER_SPACE;if ( n > LENGTH ) n = LENGTH;return &pINDENT[ LENGTH-n ];}int dump_attribs_to_stdout(TiXmlElement* pElement, unsigned int indent){if ( !pElement ) return 0;TiXmlAttribute* pAttrib=pElement->FirstAttribute();int i=0;int ival;double dval;const char* pIndent=getIndent(indent);printf("\n");while (pAttrib){printf( "%s%s: value=[%s]", pIndent, pAttrib->Name(), pAttrib->Value());if (pAttrib->QueryIntValue(&ival)==TIXML_SUCCESS) printf( " int=%d", ival);if (pAttrib->QueryDoubleValue(&dval)==TIXML_SUCCESS) printf( " d=%1.1f", dval);printf( "\n" );i++;pAttrib=pAttrib->Next();}return i; }void dump_to_stdout( TiXmlNode* pParent, unsigned int indent = 0 ){if ( !pParent ) return;TiXmlNode* pChild;TiXmlText* pText;int t = pParent->Type();printf( "%s", getIndent(indent));int num;switch ( t ){case TiXmlNode::TINYXML_DOCUMENT:printf( "Document" );break;case TiXmlNode::TINYXML_ELEMENT:printf( "Element [%s]", pParent->Value() );num=dump_attribs_to_stdout(pParent->ToElement(), indent+1);switch(num){case 0: printf( " (No attributes)"); break;case 1: printf( "%s1 attribute", getIndentAlt(indent)); break;default: printf( "%s%d attributes", getIndentAlt(indent), num); break;}break;case TiXmlNode::TINYXML_COMMENT:printf( "Comment: [%s]", pParent->Value());break;case TiXmlNode::TINYXML_UNKNOWN:printf( "Unknown" );break;case TiXmlNode::TINYXML_TEXT:pText = pParent->ToText();printf( "Text: [%s]", pText->Value() );break;case TiXmlNode::TINYXML_DECLARATION:printf( "Declaration" );break;default:break;}printf( "\n" );for ( pChild = pParent->FirstChild(); pChild != 0; pChild = pChild->NextSibling()) {dump_to_stdout( pChild, indent+1 );}}// 加载指定的文件并把它的结构输出到STDOUT上void dump_to_stdout(const char* pFilename){TiXmlDocument doc(pFilename);bool loadOkay = doc.LoadFile();if (loadOkay){printf("\n%s:\n", pFilename);dump_to_stdout( &doc ); }else{printf("Failed to load file \"%s\"\n", pFilename);}}// ———————————————————————-// main(),打印出从命令行指定的文件// ———————————————————————-int main(int argc, char* argv[]){_asm int 3for (int i=1; i<argc; i++){dump_to_stdout(argv[i]);}return 0;}
_asm int 3是调试的时候用了,可以去掉
在后续的处理XML中发现一个文件,假如在xml中是提取的要显示的内容,如果内容中出现"<"或者">"就不能够正确解析。不知道是怎么回事?
- 一个是用tinyxml遍历xml的源码
- tinyxml一个优秀的c++ xml工具
- 用TinyXML读写XML的细节
- tinyxml的xml读取
- tinyxml源码的使用
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器【转】
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- TinyXML:一个优秀的C++ XML解析器
- CentOS Eclipse环境配置
- 类中成员变量在内存中的分布是怎样的?---3
- 设计模式笔记(5 COMPOSITE & DECORATOR)
- 五个方面促进你写出更加专业的CSS代码
- PHP配置本地域名&让系统支持缩略图和水印功能
- 一个是用tinyxml遍历xml的源码
- ssh登录时不用输入密码
- LED的山寨模式
- windbg查句柄信息
- 四川整治城乡环境治理工作1年问责404人-四川-环境-问责
- Qt 的内部进程通信机制
- [USACO Nov07] 最大的湖
- JAVA 反射和代理
- lsof命令说明