C++:借助tinyxml2读取XML文件
// XMLT01.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include "tinyxml2.h"
using namespace std;
using namespace TinyXml2;
void ReadTest01XML()
{
XMLDocument doc;
doc.LoadFile("Test01.xml");
const char * content = doc.FirstChildElement("test")->GetText();
printf("%s\n",content);
}
void Printfln(const char * content, const char * name = "",const int n = 0, const char * notEqual1 = "", const char * notEqual2 = NULL)
{
for(int i = 0; i < n; i++)
{
printf(" ");
}
if(content != notEqual1 && content != notEqual2)
{
printf("%s: %s\n",name,content);
}
else
{
printf("%s: \n",name);
}
}
void ReadXML(const XMLElement *root)
{
if(NULL == root)
{
return;
}
static int flag = 0;
const char * rootName = NULL;
const char * rootContent = NULL;
const XMLAttribute * rootAttribute = NULL;
const char * rootAttributeName = NULL;
const char * rootAttributeValue = NULL;
rootName = root->Name();
rootContent = root->GetText();
rootAttribute = root->FirstAttribute();
if(NULL != rootAttribute)
{
rootAttributeName = rootAttribute->Name();
rootAttributeValue = rootAttribute->Value();
}
Printfln(rootContent,rootName,flag);
Printfln(rootAttributeValue,rootAttributeName,flag);
const XMLElement *child = root->FirstChildElement();
if(NULL != child)
{
flag++;
ReadXML(child);
}
const XMLElement * nextSibling = root->NextSiblingElement();
if(NULL != nextSibling)
{
ReadXML(nextSibling);
}
else
{
flag--;
return;
}
}
void ReadTest02XML()
{
XMLDocument doc;
doc.LoadFile("Test02.xml");
const XMLElement *root = doc.RootElement();
ReadXML(root);
system("pause");
}
int _tmain(int argc, _TCHAR* argv[])
{
ReadTest01XML();
ReadTest02XML();
return 0;
}
C++:借助tinyxml2读取XML文件的更多相关文章
- 用TinyXml2读取XML文件的一个简单Demo
废话少说直接上代码,需要的人自然一看便懂,对于第一次接触TinyXml2的人来说还是有帮助的. <?xml version="1.0"?> <Table name ...
- C#中常用的几种读取XML文件的方法
1.C#中常用的几种读取XML文件的方法:http://blog.csdn.net/tiemufeng1122/article/details/6723764/
- 读取xml文件报错:Invalid byte 2 of 2-byte UTF-8 sequence。
程序读取xml文件后,系统报“Invalid byte 2 of 2-byte UTF-8 sequence”错误,如何解决呢? 1.程序解析xml的时候,出现Invalid byte 2 of 2- ...
- C#读取XML文件的基类实现
刚到新单位,学习他们的源代码,代码里读写系统配置文件的XML代码比较老套,直接写在一个系统配置类里,没有进行类的拆分,造成类很庞大,同时,操作XML的读写操作都是使用SetAttribute和node ...
- C#读取XML文件的方法
先写一个xml文件: <?xml version="1.0" encoding="utf-8" ?> <bookste> <!-- ...
- Spring相关:jdom学习:读取xml文件
云课堂马士兵的spring2.5课程中提到的 用JDOM读取XML文件需先用org.jdom.input.SAXBuilder对象的build()方法创建Document对象,然后用Document类 ...
- 在C#中创建和读取XML文件
1.创建简单的XML文件 为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下: 这样会在C盘根目录下创建data2.xml文件,文件内容为 using ...
- Java获取路径方法&相对路径读取xml文件方法
(1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...
- python读取xml文件
关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...
随机推荐
- 比较windows phone 的回退事件与android的回退事件
public void onBackPressed() { finish(); } 如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更加傻瓜化 ...
- debug输出rect,size和point的宏
#define NSLogRect(rect) NSLog(@"%s x:%.4f, y:%.4f, w:%.4f, h:%.4f", #rect, rect.origin.x, ...
- PHP OAuth 2.0 Server
PHP OAuth 2.0 Server PHP OAuth 2.0 Server ⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️ ...
- 代码生成器的关键代码(读取PDM文件)
/// <summary> /// 处理PDM文件 /// </summary> public class DoPDMDal:IDoDataBaseDal { public L ...
- data directory "/var/lib/postgres/data" has group or world access
直接拷贝完好的data至pg目录底下,可能引起下面的错误:说data目录权限不是700.FATAL: data directory "/var/lib/postgres/data" ...
- Qt之设置窗口背景
以前遇到的很多小知识,从今天开始都一点一点记录下来... 窗口背景无非两种:背景色.背景图片.Qt中窗口背景如何设置?下面介绍三种方法: 一. QPalette设置背景 二.实现paintEv ...
- POJ 1436 Horizontally Visible Segments (线段树·区间染色)
题意 在坐标系中有n条平行于y轴的线段 当一条线段与还有一条线段之间能够连一条平行与x轴的线不与其他线段相交 就视为它们是可见的 问有多少组三条线段两两相互可见 先把全部线段存下来 并按x ...
- fiddler自动保存请求报文
先来看一张自动保存的请求片段 重点来了,下面是实现的js代码 操作步骤 Fiddler菜单 >> Rules >> Customize Rules 如果提示没有下载Fidd ...
- PHP MySQL 连接数据库
PHP连接MySQL的小实例 <?php /*时间:2014-09-14 *作者:葛崇 *功能:PHP连接MySQL小实例 * */ /* SQL 脚本.直接贴到命令行运行. DROP ...
- 类的专有方法(__getitem__和__setitem__)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #http://www.imooc.com/code/6252 #类的专有方法(__getitem__和__s ...