bool ManageTreeXml::LoadTreeXml(QTreeWidget *pTree, QString xmlPath) {
pTree->clear();
if(xmlPath.isEmpty()) return false;
QDomDocument* doc = new QDomDocument;
QFile fl(xmlPath);
if(!doc->setContent(&fl)){
fl.close();
return false;
}
fl.close();
showXml(pTree, doc,false);
return false;
}
bool ManageTreeXml::showXml(QTreeWidget* pTree, QDomDocument* pDoc, bool bEditable) {
if(pDoc == NULL) return false;
// QDomNodeList RootLst = pDoc->elementsByTagName(XML_ROOT); // QDomNode root = RootLst.item(0);
QDomElement docElem = pDoc->documentElement();
QTreeWidgetItem* it = new QTreeWidgetItem;
if(bEditable){
it->setFlags(Qt::ItemIsEditable|Qt::ItemIsEnabled|Qt::ItemIsSelectable);
}
// qDebug() << root.toElement().tagName();
it->setText(0 ,docElem.tagName());
pTree->addTopLevelItem(it);
showXmlTreeNode(pTree, docElem.firstChild() ,it, bEditable);
pTree->expandAll();
return true;
}
bool ManageTreeXml::showXmlTreeNode(QTreeWidget* pTree, QDomNode domParent ,QTreeWidgetItem* treeParent, bool bEditable) {
while(!domParent.isNull()){
QTreeWidgetItem* it = new QTreeWidgetItem;
if(bEditable){
it->setFlags(Qt::ItemIsEditable|Qt::ItemIsEnabled|Qt::ItemIsSelectable);
}
setTreeNodeText(domParent ,it);
treeParent->addChild(it);
if(domParent.hasChildNodes()){
showXmlTreeNode(pTree, domParent.firstChild() ,it, bEditable);
}
domParent = domParent.nextSibling();
}
return true;
}