热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

qt解析xml文件

一、打开文件voidABC::openXml()打开XML文件{QFilexmlFile(.xmlmenu.xml);if(!xmlFile.open(QIODevice:

一、打开文件

void ABC::openXml()  //打开XML文件

{

QFile xmlFile("./xml/menu.xml");

if(!xmlFile.open(QIODevice::ReadOnly))

{

qDebug("不能打开文件!");

return ; //不能打开文件

}

QDomDocument doc;

if (!doc.setContent(&xmlFile))

{

qDebug("不能加载文件!");

xmlFile.close();

return;

}

this->readXmlMenu(doc);

}

二、解析菜单类型

void ABC::readXmlMenu(QDomDocument doc) //解析菜单类型

{

QDomElement root = doc.documentElement();

QDomNodeList nodelist = root.childNodes();

for(unsigned i &#61; 0; i < nodelist.length(); &#43;&#43;i)

{

QString title &#61; nodelist.item(i).toElement().attribute("title");

if(! title.isEmpty())

{

treeMenu &#61; new QTreeWidget(treeFrame);

treeMenu->setGeometry(0, i*150, 180, 150);

treeMenu->setColumnCount(1);

QStringList headers;

headers << title;

treeMenu->setHeaderLabels(headers); //设置标题

treeMenu->insertTopLevelItems(0, rootList);

this->readXmlItem(nodelist.item(i), treeMenu);

}

}

}

三、解析子菜单

void ABC::readXmlItem(QDomNode node, QTreeWidget *treeItem) //解析菜单子级

{

QDomNodeList nodelist &#61; node.childNodes();

for(unsigned i &#61; 0; i < nodelist.length(); &#43;&#43;i)

{

QString title &#61; nodelist.item(i).toElement().attribute("title");

if(nodelist.item(i).toElement().attribute("isend") &#61;&#61; "false")

{

rootItem &#61; new QTreeWidgetItem(treeItem, QStringList(QString(title)));

rootList << rootItem;

treeMenu->expandAll(); //全部显示

this->readXmlItem(nodelist.item(i), treeItem);

}

else

{

QTreeWidgetItem *leaf &#61; new QTreeWidgetItem(rootItem, QStringList(QString(title)));

rootItem->addChild(leaf);

}

}

}

四、xml文件







>


推荐阅读
author-avatar
老娘叫凌凌_523
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有