qdomdocument setcontent_QDomDocument读取XML

MyXmlReader::MyXmlReader(QWidget *parent)

: QDialog(parent)

{

ui.setupUi(this);

connect(ui.openBtn, SIGNAL(clicked()), this, SLOT(openFile()));

ui.treeWid->setColumnCount(2);

ui.treeWid->setColumnWidth(0,400);

}

MyXmlReader::~MyXmlReader()

{

}

void MyXmlReader::openXml(QString fileName)

{

QFile file(fileName);

if (file.open(QIODevice::ReadOnly))

{

QDomDocument dom("WCM");

if (dom.setContent(&file))

{

ui.treeWid->clear();

QDomElement docElem = dom.documentElement();

listDom(docElem, NULL);

}

}

file.close();

}

void MyXmlReader::openFile()

{

QString fileName = QFileDialog::getOpenFileName(this, tr("Open XML File"), "C:/", tr("XML Files (*.xml)"));

if (!fileName.isEmpty())

{

openXml(fileName);

}

}

void MyXmlReader::listDom(QDomElement &docElem, QTreeWidgetItem *pItem)

{

QDomNode node = docElem.firstChild();

if (node.toElement().isNull())

{

pItem->setText(1, docElem.text());

}

while (!node.isNull())

{

QDomElement element = node.toElement();

if (!element.isNull())

{

QTreeWidgetItem *item;

if (pItem)

item = new QTreeWidgetItem(pItem);

else

item = new QTreeWidgetItem(ui.treeWid);

item->setText(0, element.tagName());

listDom(element, item);

if (pItem)

pItem->addChild(item);

else

ui.treeWid->addTopLevelItem(item);

}

node = node.nextSibling();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值