Qt之Doc建立xml

 

QFile file("my.xml");//創建指向my.xml文件的QFile對象.
    if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) // 只寫方式打開,並清空之前的信息
    {
        qDebug() << "打開失敗";
        return 0;
    }

    
    QDomDocument doc;  //新創建一個QDomDocument對象,表示一個xml文檔
    QDomProcessingInstruction instrution;  //添加處理指令
    instrution = doc.createProcessingInstruction("xml",
                                                 "version=\"1.0\" encoding=\"UTF-8\"");
    doc.appendChild(instrution);

    
    QTextStream out(&file);
    doc.save(out, 4);  //將文檔保存到文件,4爲子元素縮進字符數
    file.close();

QDomDocument doc;  //新創建一個QDomDocument對象,表示一個xml文檔
    QDomProcessingInstruction instrution;  //添加處理指令
    instrution = doc.createProcessingInstruction("xml",
                                                 "version=\"1.0\" encoding=\"UTF-8\"");
    doc.appendChild(instrution);
    QDomElement root = doc.createElement("書庫");
    doc.appendChild(root);  //添加根元素

linux

QDomDocument doc;  //新創建一個QDomDocument對象,表示一個xml文檔
    QDomProcessingInstruction instrution;  //添加處理指令
    instrution = doc.createProcessingInstruction("xml",
                                                 "version=\"1.0\" encoding=\"UTF-8\"");
    doc.appendChild(instrution);
        QDomElement root = doc.createElement("書庫");
    doc.appendChild(root);  //添加根元素
            QDomElement book = doc.createElement("圖書");
            QDomAttr id = doc.createAttribute("編號");
        root.appendChild(book);

doc.appendChild(instrution);
        QDomElement root = doc.createElement("書庫");
    doc.appendChild(root);  //添加根元素
            QDomElement book = doc.createElement("圖書");
                QDomAttr id = doc.createAttribute("編號");
            book.setAttributeNode(id);
        root.appendChild(book);

QDomDocument doc;  //新創建一個QDomDocument對象,表示一個xml文檔
    QDomProcessingInstruction instrution;  //添加處理指令
    instrution = doc.createProcessingInstruction("xml",
                                                 "version=\"1.0\" encoding=\"UTF-8\"");
    doc.appendChild(instrution);
        QDomElement root = doc.createElement("書庫");
    doc.appendChild(root);  //添加根元素
            QDomElement book = doc.createElement("圖書");
                QDomAttr id = doc.createAttribute("編號");
                id.setValue("1");
            book.setAttributeNode(id);
        root.appendChild(book);

#include <QCoreApplication>
#include <QtXml>
#include <QDebug>
/*
 * 使用QDomDocument在內存種生成一顆Dom樹,而後調用save()函數利用QTextStream文本流將Dom樹保存在了文件中,
 * 在生成Dom樹時主要使用了createElement()等函數來生成各類節點,而後使用appendChild()將各個節點一次追加進去
*/

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile file("my.xml");//創建指向my.xml文件的QFile對象.
    if(!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) // 只寫方式打開,並清空之前的信息
    {
        qDebug() << "打開失敗";
        return 0;
    }


    QDomDocument doc;  //新創建一個QDomDocument對象,表示一個xml文檔
    QDomProcessingInstruction instrution;  //添加處理指令
    instrution = doc.createProcessingInstruction("xml",
                                                 "version=\"1.0\" encoding=\"UTF-8\"");
    doc.appendChild(instrution);
        QDomElement root = doc.createElement("書庫");
    doc.appendChild(root);  //添加根元素
            QDomElement book = doc.createElement("圖書");
                QDomAttr id = doc.createAttribute("編號");
                id.setValue("1");
            book.setAttributeNode(id);  //圖書能夠有本身的屬性
                QDomElement title = doc.createElement("書名");
                    QDomText text = doc.createTextNode("Qt");
                title.appendChild(text);
            book.appendChild(title);
                QDomElement author = doc.createElement("做者");
                             text = doc.createTextNode("shiming");//文本節點
                author.appendChild(text);  //QT&shuiming是用來描述書名和做者的,所以是孩子
            book.appendChild(author); //書名&做者是圖書的孩子,他們是用來描述圖書的
        root.appendChild(book);

            //添加第2個節點
            book = doc.createElement("圖書");
                id = doc.createAttribute("編號");
                id.setValue("2");
            book.setAttributeNode(id);  //圖書能夠有本身的屬性
                title = doc.createElement("書名");
                    text = doc.createTextNode("linux");
                title.appendChild(text);
            book.appendChild(title);
                author = doc.createElement("做者");
                     text = doc.createTextNode("yafei");//文本節點
                author.appendChild(text);  //QT&shuiming是用來描述書名和做者的,所以是孩子
            book.appendChild(author); //書名&做者是圖書的孩子,他們是用來描述圖書的
        root.appendChild(book);

    QTextStream out(&file);
    doc.save(out, 4);  //將文檔保存到文件,4爲子元素縮進字符數
    file.close();


    return a.exec();
}

相關文章
相關標籤/搜索