2011-12-29 27 views
7

मैं XmlListModel साथ एक xml फ़ाइल को पार्स करने में समस्या हो रही किया गया है, इस एक्सएमएल फ़ाइलपार्सिंग एक्सएमएल

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
    <SOAP-ENV:Body> 
     <ns1:searchResponse xmlns:ns1="http://tempuri.org"> 
      <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="unnamed_struct_use_soapval[10]"> 
       <item> 
        <title xsi:type="xsd:string">Es Messi deportista del año en Israel</title> 
        <excerpt xsi:type="xsd:string">El grupo editorial.............</excerpt> 
        <img xsi:type="xsd:string">http://www.noticiasmvs.com/media/fotos/9edd0407a7bd0a47df3ece7869678c4a.jpg</img> 
        <url xsi:type="xsd:string">http://www.noticiasmvs.com/xmlapp/article.php?noticia_id=52872</url> 
        <pubdate xsi:type="xsd:string">miércoles 28 de diciembre de 2011, 03:01:54</pubdate> 
       </item> 
       <item> 
        <title xsi:type="xsd:string">Primera ronda de los playoffs NBA</title> 
        <excerpt xsi:type="xsd:string">Resultados de los partidos ya disputados y programa de los que restan por jugar de la primera ronda de los playoffs de la NBA</excerpt> 
        <img xsi:type="xsd:string">  http://www.noticiasmvs.com/media/fotos/7b9e23b87817132e9a1771cad7de819d.jpg</img> 
        <url xsi:type="xsd:string">http://www.noticiasmvs.com/xmlapp/article.php?noticia_id=4982</url> 
        <pubdate xsi:type="xsd:string">viernes 30 de abril de 2010, 01:27:17</pubdate> 
       </item> 
      </return> 
     </ns1:searchResponse> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

है मैं पार्स यह इस XmlListModel

XmlListModel { 
    query: "/SOAP-ENV/SOAP-ENV/ns1/return/item" 

    id:searchParser 
    XmlRole{ name: "title"; query: "title/string()"} 
    XmlRole{ name: "excerpt"; query: "excerpt/string()"} 
    XmlRole{ name: "img"; query: "img/string()"} 
    XmlRole{ name: "url"; query: "url/string()"} 
    XmlRole{ name: "pubdate"; query: "pubdate/string()"} 

}

कण अंत में

यह स्थिति तैयार करता है लेकिन मॉडल में कोई तत्व नहीं है, मैं गलत क्या कर रहा हूं ??

उत्तर

9

आपकी क्वेरी स्ट्रिंग सही नहीं है: आपको इसके नामस्थान सहित तत्व का नाम लिखना होगा। XPath अभिव्यक्ति है कि तरह दिखना चाहिए:

/SOAP-ENV:Envelope/SOAP-ENV:Body/ns1:searchResponse/return/item 

एक प्रश्न में नामस्थान का उपयोग करने के लिए, आप उन्हें XQuery में के रूप में घोषित किया है। यहां एक उदाहरण:

import QtQuick 1.1 

Rectangle { 
    XmlListModel { 
     id: searchParser 

     source: "data.xml" // contains XML content 
     query: "/SOAP-ENV:Envelope/SOAP-ENV:Body/ns1:searchResponse/return/item" 

     namespaceDeclarations: "declare namespace SOAP-ENV = 'http://schemas.xmlsoap.org/soap/envelope/'; 
           declare namespace ns1 = 'http://tempuri.org';" 

     XmlRole { name: "title"; query: "title/string()" } 
     XmlRole { name: "excerpt"; query: "excerpt/string()" } 
     XmlRole { name: "img";  query: "img/string()" } 
     XmlRole { name: "url";  query: "url/string()" } 
     XmlRole { name: "pubdate"; query: "pubdate/string()" } 

     onCountChanged: console.log("count:", count) 
    } 
} 
संबंधित मुद्दे