0

我有一个要查看的大型 XML 文件(2000 -3000 行)。目的是在 Qtreeview 中显示所有数据并突出显示可能错误的数据。

我已经使用 Qt 示例 (XBEL) 和 Jasmin Blanchette 书中的示例进行了测试,但作为示例并没有帮助我(此外我知道不再支持 XMLStream)。

解析和显示 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>
4

1 回答 1

1

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

请注意页面底部的说明:

该模块不再积极维护。请改用 Qt Core 中的 QXmlStreamReaderandQXmlStreamWriter类。

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

弄清楚并使用它需要一段时间,但它应该是最快的。获取所有数据验证和错误检查可能有点痛苦,但可行。

将其添加到树视图可能需要更多考虑......但这里有一些指针:

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

希望有帮助。

于 2013-10-25T20:59:19.560 回答