QT 下载文件解析XML

 #include "readxml.h"
#include "ui_readxml.h"
#include <QXmlStreamReader>
#include <QMessageBox>
#include<QFile>
#include <qt4/QtXml/qdom.h>
#include <HttpGet.h>
#include <QUrl>
ReadXml::ReadXml(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ReadXml)
{
    ui->setupUi(this);
}
ReadXml::~ReadXml()
{
    delete ui;
}
void ReadXml::on_readXml_clicked()
{
    QDomDocument doc("mydocument");
        QFile file("configfilepath_temp.xml");
    if (!file.open(QIODevice::ReadOnly))
             return;
    if (!doc.setContent(&file))
    {
    //file.close();
            // return;
    }
    file.close();
    QDomElement docElem = doc.documentElement();
    //QDomNodeList nodeList = docElem.elementsByTagName("Proxy").at(0).toElement().elementsByTagName("ProxyTypes").at(0).toElement().elementsByTagName("Type");
    QDomNodeList nodeList = docElem.elementsByTagName("Section").at(1).toElement().elementsByTagName("Key");
    if (nodeList.count() > 0)
    {  HttpGet getter;
       for(int iDx = 0;iDx < nodeList.count(); iDx++)
           {
                 bool bOk = false;
                 //int iD = nodeList.at(iDx).attributes().namedItem("Enc").nodeValue().toInt(&bOk,10);
                 QString Type(nodeList.at(iDx).attributes().namedItem("Value").nodeValue());
                ui->comboBox->addItem(Type,iDx);
                getter.downloadFile(QUrl(Type));
                 QObject::connect(&getter, SIGNAL(finished()),  SLOT(quit()));
           }
    }
}
void ReadXml::on_downXml_clicked()
{
    HttpGet getter;
       getter.downloadFile(QUrl("http://dev.pubds.com/configFile/2/4/configfilepath_temp.xml"));
        QObject::connect(&getter, SIGNAL(finished()),  SLOT(quit()));
      
        
               /*QHttp *http;
                http=new QHttp();
                QUrl *url=new QUrl("http://hi.baidu.com/sdink/blog/item/6178ccb77650bcc537d3ca68.html"); // this can download
   
                QFileInfo fileinfo(url->path());
    
                QFile *file = new QFile(fileinfo.fileName());
                file->open(QIODevice::WriteOnly);
    
                http->setHost(url->host(),80);
                int httpGetId=http->get(url->path(),file);
    
                QString errore=http->readAll();
               ui->textEdit->setText(errore);
                qDebug() << httpGetId;
                http->closeConnection();
                file->close();*/
}

posted on 2011-03-16 17:25  风乔  阅读(641)  评论(0编辑  收藏  举报

导航