Tinyxml2读取xml文件

原创 2015年07月09日 09:01:21

XML文件内容

<?xml version="1.0" encoding="UTF-8"?>
<table>
    <person>
        <profession>teacher</profession>
        <name>Tom</name>
        <age>28</age>
        <height>1.7</height>
    </person>
    <person>
        <profession>student</profession>
        <name>Jerry</name>
        <age>18</age>
        <height>1.8</height>
    </person>
    <person>
        <profession>police</profession>
        <name>Jack</name>
        <age>38</age>
        <height>1.6</height>
    </person>
</table>

具体代码

CString GetAppPath()
{
//获取应用程序根目录
TCHAR modulePath[MAX_PATH];
GetModuleFileName(NULL, modulePath, MAX_PATH);
CString strModulePath(modulePath);
strModulePath = strModulePath.Left(strModulePath.ReverseFind(_T('\\')));
return strModulePath;
}


int main()
{
//获取xml文件路径
CString fileName("\\test.xml");
CString Path = GetAppPath();
Path += fileName;

//CString转换为const char*
const size_t strsize = (Path.GetLength() + 1) * 2; // 宽字符的长度;
char * pstr = new char[strsize]; //分配空间;
size_t sz = 0;
wcstombs_s(&sz, pstr, strsize, Path, _TRUNCATE);
const char* FilePath = pstr;//xml文件绝对路径

//创建一个xml文档对象
tinyxml2::XMLDocument *myDocument = new tinyxml2::XMLDocument();
myDocument->LoadFile(FilePath);

//读取根节点
XMLElement *RootElement = myDocument->FirstChildElement();
cout << RootElement->Value() << endl;

//循环输出每一个Person属性
XMLElement *FirstPerson = RootElement->FirstChildElement();//获取第一个Person节点
while (FirstPerson)
{
XMLElement *PersonType = FirstPerson->FirstChildElement();
cout << "职业:" << PersonType->GetText() << " ";
XMLElement *PersonName = PersonType->NextSiblingElement();
cout << "姓名:" << PersonName->GetText() << " ";
XMLElement *PersonAge = PersonName->NextSiblingElement();
cout << "年龄:" << PersonAge->GetText() << " ";
XMLElement *PersonHeight = PersonAge->NextSiblingElement();
cout << "身高:" << PersonHeight->GetText() << endl;
FirstPerson = FirstPerson->NextSiblingElement();
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

在Windows下使用TinyXML-2读取UTF-8编码包含中文字符的XML文件

本文介绍了在Windows下使用TinyXML-2读取UTF-8编码、包含中文字符XML文件的方法。

C++使用tinyxml创建和解析xml文件(本文用于cocos2dx)

cocos2dx 2.2.5版里集成的tinyxml2不好用,总是baocu

tinyxml2读写XML文件的例程

例程很简单,因此就不再啰嗦了,直接上代码。 test.xml内容: 0 10 10 0 0 -1 0 1 0 90 0 10 -10 10 ...
  • zhawk
  • zhawk
  • 2017-03-08 19:43
  • 765

cocos2d-x3.10 使用tinyxml2在Android配合FileUtilsAndroid解析XML文件

在游戏中,每个关卡的东西往往是不同的,这就需要初始化不同的数据,然而,通常并不是把所有的关卡数据都写在程序中,而是把每个关卡数据写在配置文件中,XML既是其中的一种。   Cocos2d-x在Andr...

tinyXML读取xml文件的方法

全面的总结一下TinyXML操作XML文件的过程,TinyXML中的类与XML文件结构成一一对应关系。 Lxr 2013-09-12 1 TinyXML与XML的对应 1.1XML文件...

C++TinyXml读取解析xml文件

1. 背景 一个小工程需要在程序启动的时候,读取xml配置文件信息并进行初始化。 TinyXml是一个精简的比较流行的C++第三方库,所以工程里用它进行读取xml文件。 2. 源码及解读 解析函数如下...

毕业论文中使用的XML读取和制造工具!!!C++ 使用TinyXML解析XML文件

1.介绍   读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成...

tinyXMl解析XMl文件

  • 2017-04-24 22:48
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)