die folgende Funktion zeigt nur Elemente aber keine Attribute an und ich versteh nicht warum:
Code: Alles auswählen
fillNode2Tree(QDomNode node, QTreeWidgetItem* item)
{
if (node.isNull()) return;
node = node.firstChild();
QTreeWidgetItem* child;
QString temp;
while (!node.isNull())
{
child = new QTreeWidgetItem();
child->setText(0, node.nodeName());
switch (node.nodeType())
{
case QDomNode::ElementNode:
temp = "element";
break;
case QDomNode::AttributeNode:
temp = "attribute";
break;
case QDomNode::TextNode:
temp = "text";
break;
case QDomNode::CDATASectionNode:
temp = "CDATA";
break;
case QDomNode::EntityReferenceNode:
temp = "entity ref";
break;
case QDomNode::EntityNode:
temp = "entity";
break;
case QDomNode::ProcessingInstructionNode:
temp = "proc instruction";
break;
case QDomNode::CommentNode:
temp = "comment";
break;
case QDomNode::DocumentNode:
temp = "document";
break;
case QDomNode::DocumentTypeNode:
temp = "doc type";
break;
case QDomNode::DocumentFragmentNode:
temp = "doc fragment";
break;
case QDomNode::NotationNode:
temp = "notation";
break;
case QDomNode::BaseNode:
temp = "base";
break;
case QDomNode::CharacterDataNode:
temp = "char data";
break;
default:
temp = "<unknown>";
break;
}
child->setText(1, temp);
child->setText(2, node.nodeValue());
if (item == 0)
{
ui.treeXML->addTopLevelItem(child);
}
else
{
item->addChild(child);
}
fillNode2Tree(node, child);
node = node.nextSibling();
}
}