QT中使用QXmlStreamReader解析XML檔案
轉載請註明連結與作者huihui1988
XML檔案由於其擴充套件性與相容性的優點,被廣泛用作軟體和系統的配置檔案。這裡簡要介紹一下QT下如何來解析XML檔案。
原始碼:
xml_reader.h
- #ifndef XML_READER_H
- #define XML_READER_H
- #include <QtCore>
- //#include <QtGui>
- class xml_reader : public QXmlStreamReader
- {
- //Q_OBJECT
- public:
-
xml_reader();
- bool read(QIODevice *device);
- private:
- void read_data();
- void read_startweek();
- void read_eventnumber();
- void read_period();
- void read_id();
- void read_starttime();
- void read_endtime();
- void read_exception();
-
void read_subexception();
- void read_description();
- void read_duration();
- void read_event();
- void read_offsettime();
- void read_eventdesc();
- void read_eventname();
- void read_prompt();
- void read_lasthandle();
- void read_unknow();
- };
- #endif // XML_READER_H
xml_reader.cpp
- #include "xml_reader.h"
- xml_reader::xml_reader()
- {}
- bool xml_reader::read(QIODevice *device)
- {
- setDevice(device);
- while(!atEnd())
- {
- readNext();
- if(isStartElement())
- {
- if(name() == "data")
- {
- read_data();
- }
- }
- }
- return !error();
- }
- void xml_reader::read_data()
- {
- qDebug()<<"Start to read data...";
- while(!atEnd())
- {
- readNext();
- if(isStartElement())
- {
- if(name() == "period")
- {
- read_period();
- }
- if(name() == "startweek")
- {
- read_startweek();
- }
- if(name() == "eventnumber")
- {
- read_eventnumber();
- }
- }
- if(isEndElement())
- {
- if(name() == "data")
- {
- qDebug()<<"Now at the end of data element...";
- break;
- }
- }
- }
- }
- void xml_reader::read_startweek()
- {
- qDebug()<<"startweek is: "<<readElementText();
- }
- void xml_reader::read_eventnumber()
- {
- qDebug()<<"eventNumber is: "<<readElementText();
- }
- void xml_reader::read_period()
- {
- qDebug()<<"Start to read period...";
- while(!atEnd())
- {
- readNext();
- if(isStartElement())
- {
- if(name() == "id")
- {
- read_id();
- }
- if(name() == "starttime")
- {
- read_starttime();
- }
- if(name() == "endtime")
- {
- read_endtime();
- }
- if(name() == "exception")
- {
- read_exception();
- }
- if(name() == "duration")
- {
- read_duration();
- }
- if(name() == "event")
- {
- read_event();
- }
- }
- if(isEndElement())
- {
- if(name() == "period")
-
相關推薦
QT中使用QXmlStreamReader解析XML檔案
轉載請註明連結與作者huihui1988 XML檔案由於其擴充套件性與相容性的優點,被廣泛用作軟體和系統的配置檔案。這裡簡要介紹一下QT下如何來解析XML檔案。 原始碼: xml_reader.h #ifndef XML_READER_H #define XML_RE
java中DOM解析xml檔案
本文介紹瞭如何利用DOM(即Document Object Model文件物件模型)解析xml檔案。 首先有一個xml檔案: <?xml version=\"1.0\" encoding=\"UTF-8\" ?> <User> <city
Qt中讀寫xml檔案
1 概述 Qt中解析XML檔案有多種方法,參考資料[1]使用QXmlStreamReader類來讀取並解析xml檔案,而參考資料[2]則使用QDomDocument類來解析xml檔案。 2 QDomDocument 參考資料[2][3][4]都給出了QDom
Java中使用DOM方法解析XML檔案
Java中使用DOM方法解析XML檔案 1、簡介 XML現在已經成為一種通用的資料交換格式,平臺的無關性使得很多場合都需要用到XML,本部落格將介紹用DOM方法解析XML檔案的方法,DOM解析是將XML檔案全部載入到記憶體,組裝成一顆DOM樹,然後通過節點以及節點之間的關係來解析XM
Python3解析XML檔案並存入Excel表中
1. XML檔案部分資料如下: <?xml version='1.0' encoding='UTF-8'?> <nvd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://
java中解析xml檔案的五種常見方法:DOM4J,dom,pull,SAX,Jdom
package com.zhidi.dom4jtest; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import or
在java專案中如何利用Dom4j解析XML檔案獲取資料
在以前的學習.net時經常會遇到利用配置檔案來解決專案中一些需要經常變換的資料,比如資料庫的連線字串兒等。這個時候在讀取配置檔案的時候,我們通常會用到一個雷configuration,通過這個類來進行
Android中使用pull解析xml檔案
Android解析xml檔案的時候,自己推薦是使用pull的方式來解析xml資原始檔,pull方式又有兩種,分別是XmlPullParser和XmlResourceParser兩種。下面來分別介紹。 一: XmlPullParser方式進行佈局解析。
XML:使用DOM技術解析xML檔案中的城市,實現select級聯選擇
<?xml version="1.0" encoding="utf-8"?> <china> <province name="北京"> <city>東城區</city> <city>
Android 中使用Pull解析XML檔案
解析XML檔案是非常常用的功能,在Android客戶端中,經常與伺服器通訊都需要xml檔案的支援,我們這裡介紹一個 簡單的xml檔案的解析,就是使用android中的pull方法進行解析。在java中,有dom解析和sax解析,這個pull解析有些類 似於sax解析,他也是
Qt淺談之二十八解析XML檔案
一、簡介 QtXml模組提供了一個讀寫XML檔案的流,解析方法包含DOM和SAX。DOM(Document ObjectModel):將XML檔案表示成一棵樹,便於隨機訪問其中的節點,但消耗記憶體相對多一些。SAX(Simple APIfor XML):一
java中解析xml檔案儲存資料庫
package com.ziyun56.chpz.service.poi.util; import java.io.File; import java.util.Iterator; import java.util.List; import org.dom4j.Docu
Java上傳且後臺解析XML檔案
後臺程式碼: import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.InputStreamReader; import javax.
利用dom4j-1.6.1解析xml檔案
1.先看xml的文件裡面的格式 2.main裡面,就是一個按鈕新增點選事件,然後通過工具類來解析 3.工具類裡面的程式碼,這裡我在xml中去掉了部分屬性,你可以自己設定一下,然後重新設定就好了 4.最後在activity中就可以自己查看了,我這裡是直接返回了一
java後臺解析XML檔案
解析XML檔案分為兩種: 1、DOM(Document Object Model) 2、SAX(Simple API for XML) DOM是基於XML文件樹結構的解析,SAX是基於事件流的解析。 我用到的是SAX解析>> 一、XML檔案 <?xml
用JDOM解析XML檔案時如何解決中文問題?如何解析?
1 import javax.xml.parsers.DocumentBuilder; 2 import javax.xml.parsers.DocumentBuilderFactory; 3 import javax.xml.transform.OutputKeys; 4 import jav
Java:簡單的解析XML檔案之使用DOM解析
XML簡介 要理解XML,HTML等格式,先來理解文件物件模型DOM 根據 DOM,HTML 文件中的每個成分都是一個節點,這些節點組成了一棵樹。DOM 是這樣規定的:整個文件是一個文件節點每個 HTML 標籤是一個元素節點包含在 HTML 元素中的文字是文字節點每一個 HTML 屬性是一個屬性節
java w3c解析xml檔案,獲取指定節點內容,讀取外部配置檔案。
原始碼: package com.ys.adage.utils; import com.ys.adage.message.CodeObjectResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.
使用QDomDocument的setContent解析XML檔案報錯的解決方案
可能的錯誤: 1、使用QDomDocument建立根節點時,使用了諸如:rootNode.setAttribute(“ProjName”,fileName);或者rootNode.setAttribute(“Version”,“2.0”);等等,根節點不能帶屬性 2、create
解析.xml檔案
有個第三方的包,用來解析.xml檔案比較方便,它是DOM4J。由於是第三方的,所以要使用它就要先下載,幷包含進來。步驟: 1.開啟dom4j官網,這裡下載最新版dom4j-2.1.1.jar. 2.新建資料夾lib. 3.把下載好的dom4j.jar放到lib資料夾裡面。