• 6971阅读
  • 7回复

如何读取xml里的信息做文件配置 [复制链接]

上一主题 下一主题
离线9605201
 
只看楼主 倒序阅读 楼主  发表于: 2009-02-14
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
<?xml version="1.0" encoding="utf-8"?>
<Config>
    <Settings>
        < Host >127.0.0.1</Host >
        <Database>aaaaa</Database>
        <User> root </User >
        < Pwd >1234567</Pwd >
        <Port>3306</Port>
    </Settings>
</Config>

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql数据库驱动
    db.setHostName("192.168.1.106");//这里
    db.setDatabaseName("mydb"); // 这里
    db.setUserName("root"); // 这里
    db.setPassword("1234"); // 这里

如何把上面的xml内的配置信息读取到上面代码里
搜索了论坛,还是不懂,所有发帖求教 
离线weizhy
只看该作者 1楼 发表于: 2009-02-14
使用QDomDocument,如何取得信息的代码段assistant中有
离线9605201
只看该作者 2楼 发表于: 2009-02-14
看了  不是很懂 所有才发帖求教
离线lizhengjin

只看该作者 3楼 发表于: 2009-02-16
qxmlstreamreader
离线weizhy
只看该作者 4楼 发表于: 2009-02-16
看 qtdemo>xml>Dom Bookmarks
基本上照抄就好了
别这么懒么
离线wd007

只看该作者 5楼 发表于: 2009-02-17
这个很多方法都可以的,楼主试一试。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线haulm

只看该作者 6楼 发表于: 2009-02-24
我自己做的练习,在不懂得XML的基本概念前对XML的操作的确很吃力,根本不知道自己在做什么,我还是没搞懂QDomNode的应用。

#include <QtGui>
#include <QtXml>
#include <iostream>
using namespace std;
int main()
{
QFile file("./a.xml");
    file.open(QFile::ReadOnly|QFile::Text);
    QDomDocument d;
    d.setContent(&file);
    qDebug()<<d.toString()<<"__________________________________";
    QDomElement root=d.documentElement();
    qDebug()<<root.tagName();
    QDomElement first_child=root.firstChildElement();
    for(;!first_child.tagName().isNull();first_child=first_child.nextSiblingElement())
    {
    qDebug()<<first_child.tagName();
    QDomElement second_child=first_child.firstChildElement();
            for(;!second_child.tagName().isNull();second_child.nextSiblingElement())
            {
              qDebug()<<second_child.tagName();
             }
     }
    QDomNodeList l = d.elementsByTagName("age");
        for(int i =0 ; i<l.count() ; i++){
                qDebug()<<l.at(i).toElement().tagName();
                qDebug()<<l.at(i).toElement().text();
             }

QDomNode n = d.firstChild().firstChild();
while (!n.isNull()) {
     if (n.isElement()) {
         QDomElement e = n.toElement();
         qDebug()<< "Element name: " << e.tagName();
         break;
     }
     n = n.nextSibling();
}
}
离线haulm

只看该作者 7楼 发表于: 2009-02-24
如果楼主只是想得到某个特定标签上内容直接应用QDomNodeList就可以了,不管它位于哪个节点都被收集。
快速回复
限100 字节
 
上一个 下一个