Làm cách nào để chạy truy vấn XPath trong QT?Làm cách nào để chạy các truy vấn XPath trong QT?
Tôi cần sắp xếp các thẻ nhất định với các giá trị cụ thể trong một thuộc tính nhất định. Các tài liệu QXmlQuery là bất cứ điều gì nhưng dễ đọc.
Giản đồ tôi đang phân tích cú pháp là định dạng 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>
Đây là Schema XML cơ bản của bạn trong đó có một bộ sưu tập các mục có cấu trúc. Ý định của tôi là lọc ra các mục có loại 'bỏ qua'.
Bạn không cần phải phân tích cú pháp XML hai lần; chỉ cần sử dụng một quá tải QXmlQuery :: evaluationTo() khác nhau. Chỉ cần sử dụng kết quả 'QXmlResultItems'; query.evaluateTo (& result); ' và sau đó lặp qua 'kết quả' để nhận tất cả các nút phù hợp. Xem http://doc.trolltech.com/main-snapshot/qxmlresultitems.html –
XMLResultItems, XMLItems hoặc XMLNodeItems không đầy đủ như tôi có thể nói từ tài liệu. Như tài liệu nói: "Bởi vì QXmlNodeModelIndex là cố ý một lớp đơn giản, nó không có chức năng thành viên để truy cập các thuộc tính của các nút." –
Như tài liệu nói: "Bởi vì QXmlNodeModelIndex là cố ý một lớp đơn giản, nó không có chức năng thành viên để truy cập các thuộc tính của các nút." Hoàn toàn đồng ý. Có cách nào để chạy một yêu cầu XPath và điều hướng dễ dàng thông qua kết quả không? Tôi bắt đầu nghĩ rằng câu trả lời là không! Tôi đang tìm kiếm trên web trong 2 ngày và tôi không tìm thấy gì cả. Tôi nghĩ rằng tôi sẽ sử dụng Gnome libxml thay vì QtXml, nhưng nó hút bằng cách sử dụng g –