2013-10-25 43 views
0

我有一個很大的XML文件(2000-3000行),我想要通過。目的是顯示Qtreeview中的所有數據並突出顯示那些可能錯誤的數據。我已經測試過Qt示例(XBEL)和Jasmin Blanchette書中的示例,但它並沒有幫助我作爲示例(除了我知道XMLStream不再受支持)。Qtreeview中的大Xml

什麼是解析和顯示在Qtreeview中突出顯示的一些數據的最佳方式是什麼? (QTreeView則僅僅是在我的例子中數據的解釋,我知道如何處理它)

文件的摘錄解析:

<Description xmlns="file://DeviceDescription-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.software.com/schemas/Description-1.0.xsd Description-1.0.xsd file://Description-1.0.xsd OEMcCustom.xsd " xmlns:se="file://Description-1.0.xsd"> 
    <Connector connectorId="1" explicit="false" hostpath="-1" interface="Serial" moduleType="91" role="child" alwaysmapping="true"> 
     <Parameter ParameterId="8000" type="std:BOOL"> 
      <Attributes download="false" offlineaccess="read" /> 
      <Default>true</Default> 
      <Name>NameConfig</Name> 
      <Description>Use the new NameConfig format</Description> 
     </Parameter> 
     <Parameter ParameterId="12345692" type="localTypes:CHANNEL_PACKED"> 
        <Attributes /> 
        <Default> 
         <Element name="FunctionCode">3</Element> 
         <Element name="ReadOffset">16#0000</Element> 
         <Element name="ReadLength">4</Element> 
         <Element name="WriteOffset">0</Element> 
         <Element name="WriteLength">0</Element> 
         <Element name="Trigger">5</Element> 
         <Element name="CycleTime">100</Element> 
         <Element name="ErrorHandling">true</Element> 
         <Element name="EnableRegisterBitMapping" /> 
        </Default> 
        <Name>Channel 1</Name> 
        <Description>ChannelConfig</Description> 
       </Parameter>  
    </Connector> 
</Description> 

回答

1

http://qt-project.org/doc/qt-5.1/qtxml/qtxml-module.html

注意朝向說明頁面底部:

該模塊不再被主動維護。相反,請使用Qt Core中的 QXmlStreamReaderQXmlStreamWriter類。

http://qt-project.org/doc/qt-5.1/qtcore/qxmlstreamreader.html#details

這需要一段時間來弄清楚這一個,並用它,但它應該是最快的。獲得所有數據驗證和錯誤檢查可能會有點痛苦,但是可行。

它添加到一個TreeView可能需要一些更多的思考......但這裏有一些指點:

http://qt-project.org/doc/qt-5.1/qtwidgets/qtreeview.html#details

http://qt-project.org/doc/qt-4.8/itemviews-simpledommodel.html

http://qt-project.org/doc/qt-4.8/examples-xml.html

如果仍然是不夠的鏈接,這裏有一些更多:

http://qt-project.org/doc/qt-4.8/qsimplexmlnodemodel.html#details

http://qt-project.org/doc/qt-4.8/xmlpatterns-filetree.html

希望有幫助。

+0

這些都是很好的指針,特別是最後2.我改進了這個問題,因爲我需要比QTreeview更多的XML數據解釋代碼。主要的困難是要解釋這些示例,以便能夠遍歷我的xml示例以檢索每個標記。謝謝。 – dlewin