Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. Need enlightenment with XmlListModel

Need enlightenment with XmlListModel

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
2 Posts 1 Posters 676 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    cyclothunder
    wrote on last edited by
    #1

    Hello everyone,

    I hope this is the right place to ask for help in the following matter, if not just point me in the right direction.
    I'm trying to use XmlListModel with a xml file I got from a server. I think the problem may be with namespace declarations but I have tried many combinations without success. To be sure I could use this qml type, I tried this with another xml file - https://www.w3schools.com/xml/books.xml - all went good!

    Here's a portion of the "problematic" xml file:

    <?xml version="1.0"?>
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    	<s:Header>
    		<o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" s:mustUnderstand="1">
    			<u:Timestamp u:Id="_0">
    				<u:Created>2018-02-07T20:04:36.232Z</u:Created>
    				<u:Expires>2018-02-07T20:09:36.232Z</u:Expires>
    			</u:Timestamp>
    		</o:Security>
    	</s:Header>
    	<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    		<RecebeResponse xmlns="http://www.precoscombustiveis.dgge.pt/PCOM/Recebe">
    			<RecebeResult>
    				<Pedido xmlns="" id="1" data="2018-02-07" hora="20:03">
    					<Actualizacoes>
    						<Actualizacao id="8479" data="2018-02-05" hora="00:36">
    							<Postos>
    								<Existentes>
    									<Posto id="67270">
    										<Nome> BP Xabregas</Nome>
    										<Marca>BP</Marca>
    										<Utilizacao>P&#xFA;blica</Utilizacao>
    										<TipoPosto>Outro</TipoPosto>
    										<Municipio>Lisboa</Municipio>
    										<Localidade>Lisboa - Xabregas</Localidade>
    										<Morada>Av. Infante D.Henrique, 61</Morada>
    										<CodPostal1>1900</CodPostal1>
    										<CodPostal2>439</CodPostal2>
    										<CodPostalLocalidade>Lisboa</CodPostalLocalidade>
    										<Sentido>Descendente</Sentido>
    										<Latitude>38.72526</Latitude>
    										<Longitude>-9.11153</Longitude>
    										<HorarioDiasUteis>Hor&#xE1;rio espec&#xED;fico</HorarioDiasUteis>
    										<HoraAberturaDiasUteis>07:00</HoraAberturaDiasUteis>
    										<HoraFechoDiasUteis>23:00</HoraFechoDiasUteis>
    										<HorarioSabados>Hor&#xE1;rio espec&#xED;fico</HorarioSabados>
    										<HoraAberturaSabados>07:00</HoraAberturaSabados>
    										<HoraFechoSabados>23:00</HoraFechoSabados>
    										<HorarioDomFeriados>Hor&#xE1;rio espec&#xED;fico</HorarioDomFeriados>
    										<HoraAberturaDomFeriados>07:00</HoraAberturaDomFeriados>
    										<HoraFechoDomFeriados>23:00</HoraFechoDomFeriados>
    										<Descontos/>
    										<Observacoes>Pagamentos com cart&#xE3;o Routex&#xD;
    Desconto aos portadores de cart&#xE3;o Azul BP&#xD;
    Desconto aos portadores de cart&#xE3;o ACP&#xD;
    Desconto aos portadores de cart&#xE3;o INATEL&#xD;
    Desconto aos portadores de cart&#xE3;o Poupa Mais&#xD;
    Desconto aos portadores de cart&#xF5;es BP/Acordos</Observacoes>
    										<Servicos>
    											<Servico>Venda de carburante de qualidade superior</Servico>
    											<Servico>Venda de g&#xE1;s dom&#xE9;stico em garrafas</Servico>
    											<Servico>WC</Servico>
    											<Servico>Calibragem de pneus</Servico>
    											<Servico>Loja de Conveni&#xEA;ncia</Servico>
    										</Servicos>
    									</Posto>
    

    Here's my qml code:

    import QtQuick 2.9
    import QtQuick.Window 2.2
    import QtQuick.XmlListModel 2.0
    
    Window {
        visible: true
        width: 640
        height: 480
        title: qsTr("Hello World")
    
        XmlListModel {
            id: xmlModel
    		source: "qrc:/xml/dataFULL.xml"
            query: "/Envelope/Body/RecebeResponse/RecebeResult/Pedido/Actualizacoes/Actualizacao/Postos/Existentes/Posto"
    
    
            namespaceDeclarations: "declare default element namespace 'http://schemas.xmlsoap.org/soap/envelope/';"+
                                   "declare namespace u='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';"+
                                   "declare namespace o='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';"+
                                   "declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';"+
                                   "declare namespace xsd='http://www.w3.org/2001/XMLSchema';"
    
    
            XmlRole { name: "Nome"; query: "Nome/string()"}
    
        }
    
        ListView{
            id: list
            width: 300; height: 300
            model: xmlModel
            delegate: Text { text: Nome }
        }
    }
    

    With this code the "Text" in the ListView doesn't show anything.
    I'm think this model have some error but I don't know how to retrieve the error to fix it.

    Hope someone can give me a hand figuring this out!

    1 Reply Last reply
    0
    • C Offline
      C Offline
      cyclothunder
      wrote on last edited by
      #2

      ... Since I couldn't use xmllistmodel I changed my approach.
      Created a class derived from QAbstractItemModel and applied this model to QML.
      Don't know if this is the best way but for now it works.

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved