Как запустить запрос XPath в QT?Как запустить запросы XPath в QT?
Мне нужно отсортировать определенные теги с определенными значениями в определенном атрибуте. Документация QXmlQuery ничем не отличается.
Схема Я разбора формат 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>
Это ваш основной XML-схемы, которая имеет набор структурированных записей. Мое намерение состояло в том, чтобы отфильтровать записи с типом «игнорировать».
Вам не нужно анализировать XML дважды; просто используйте другую перегрузку QXmlQuery :: valuTo(). Просто используйте результат QXmlResultItems; query.evaluateTo (& result); ' а затем перебираем «результат», чтобы получить все соответствующие узлы. См. Http://doc.trolltech.com/main-snapshot/qxmlresultitems.html –
XMLResultItems, XMLItems или XMLNodeItems не являются достаточными, насколько я могу судить по документации. Как говорится в документации: «Поскольку QXmlNodeModelIndex преднамеренно является простым классом, у него нет функций-членов для доступа к свойствам узлов». –
Как говорится в документации: «Поскольку QXmlNodeModelIndex преднамеренно представляет собой простой класс, он не имеет функций-членов для доступа к свойствам узлов». Полностью согласен. Есть ли ПРОСТОЙ способ запускать запрос XPath и легко перемещаться по результату? Я начинаю думать, что ответ - нет! Я ищу в Интернете 2 дня, и я ничего не нахожу. Я думаю, что я собираюсь использовать Gnome libxml вместо QtXml, но это отстой, используя g – 2011-03-03 10:19:16