¿Cómo ejecuto una consulta XPath en QT?¿Cómo ejecuto consultas XPath en QT?
Necesito clasificar ciertas etiquetas con valores específicos en cierto atributo. La documentación de QXmlQuery no es legible.
El esquema que estoy de análisis es el formato Rhythmbox DB:
<rhythmdb version="1.6">
<entry type="ignore">
<title></title>
<genre></genre>
<artist></artist>
<album></album>
<location>file:///mnt/disk/music/Cover.jpg</location>
<mountpoint>file:///mnt/disk</mountpoint>
<mtime>1222396828</mtime>
<date>0</date>
<mimetype>application/octet-stream</mimetype>
<mb-trackid></mb-trackid>
<mb-artistid></mb-artistid>
<mb-albumid></mb-albumid>
<mb-albumartistid></mb-albumartistid>
<mb-artistsortname></mb-artistsortname>
</entry>
<entry type="song">
<title>Bar</title>
<genre>Foobared Music</genre>
<artist>Foo</artist>
<album>The Great big Bar</album>
<track-number>1</track-number>
<disc-number>1</disc-number>
<duration>208</duration>
<file-size>8694159</file-size>
<location>file:///media/disk/music/01-Foo_-_Bar.ogg
<mountpoint>file:///media/disk
<mtime>1216995840</mtime>
<first-seen>1250478814</first-seen>
<last-seen>1250478814</last-seen>
<bitrate>301</bitrate>
<date>732677</date>
<mimetype>application/x-id3</mimetype>
<mb-trackid></mb-trackid>
<mb-artistid></mb-artistid>
<mb-albumid></mb-albumid>
<mb-albumartistid></mb-albumartistid>
<mb-artistsortname></mb-artistsortname>
</entry>
</rhythmdb>
Ésta es su esquema XML básico que tiene una colección de entradas estructuradas. Mi intención era filtrar las entradas con el tipo 'ignorar'.
No es necesario analizar el XML dos veces; simplemente use una sobrecarga de QXmlQuery :: evaluateTo() diferente. Simplemente use el resultado 'QXmlResultItems; query.evaluateTo (& result); ' y luego iterar sobre 'resultado' para obtener todos los nodos coincidentes. Ver http://doc.trolltech.com/main-snapshot/qxmlresultitems.html –
XMLResultItems, XMLItems o XMLNodeItems no son adecuados por lo que pude ver en la documentación. Como dice la documentación: "Debido a que QXmlNodeModelIndex es intencionalmente una clase simple, no tiene funciones miembro para acceder a las propiedades de los nodos". –
Como dice la documentación: "Debido a que QXmlNodeModelIndex es intencionalmente una clase simple, no tiene funciones de miembro para acceder a las propiedades de los nodos". Totalmente de acuerdo. ¿Existe alguna forma SIMPLE de ejecutar una solicitud XPath y navegar fácilmente por el resultado? ¡Estoy empezando a pensar que la respuesta es no! Estoy buscando en la web durante 2 días y no encuentro nada. Creo que usaré el libnml de Gnome en lugar de QtXml, pero apesta usando g –