关闭

Tinyxml2读取xml文件

标签: C++ Tinyxml
18人阅读 评论(0) 收藏 举报
分类:

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();
}
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19次
    • 积分:10
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档
    阅读排行
    评论排行