J'aime afficher du contenu (X) HTML dans une application Qt en utilisant QtWebKit. Le contenu doit être généré à partir de documents XML via XSLT. Comme je suis nouveau à Qt, mes questions sont les suivantes:
1) QtWebKit peut-il afficher des documents XML avec l'ensemble d'éléments xml-stylesheet?
2) Qt peut-il appliquer XSLT à un document XML et renvoyer le résultat sous forme de chaîne ou l'écrire dans un fichier?Traitement XSLT avec Qt
Répondre
QtWebKit et xslt étaient toujours séparés, leur combinaison était toujours un todo - je ne sais pas quel est le statut actuel mais vous pouvez facilement le tester avec les exemples.
Ou suivez http://labs.trolltech.com/blogs/2010/03/03/qtwebkit-releases/
Avec QXmlQuery
vous pouvez traiter un document XML par rapport à un modèle XSL puis passer le résultat aux QWebView::setHtml(QString)
(versions récentes de Qt utilisera QWebEngineView::setHtml(..)
.
QString out;
QXmlQuery query(QXmlQuery::XSLT20);
query.setFocus(QUrl("myInput.xml"));
query.setQuery(QUrl("myStylesheet.xsl"));
query.evaluateTo(&out);
webview->setHtml(out);
Vous pouvez trouver ce code et plus d'informations dans le QXmlQuery documentation
QXmlQuery permet-il de résoudre les liens xsl incorporés dans le fichier XML au lieu d'appeler setQuery ?. Je veux dire, dans votre extrait de code, si "myInput.xml" contient le lien vers le fichier XSL, et que le fichier XSL contient également des références à d'autres fichiers XSL de manière récursive, comment QXmlQuery peut-il être appliqué pour charger toutes les feuilles de style? Peut-il déjà le faire? Ou setQuery est-il toujours requis? (dans ce cas, il faut scanner les fichiers XML et XSL pour construire un arbre de dépendance ou quelque chose comme ça). – Claudix
@Claudix, si votre question est toujours valide, pensez à la poser [comme nouvelle question] (http://stackoverflow.com/questions/ask). Et oui, c'est possible. – Abel
- 1. Traitement XSLT dans/depuis ruby
- 2. Traitement XML avec XSLT et CSS dans Internet Explorer
- 3. Traitement du code XML vide dans XSLT
- 4. WrappedRuntimeException pendant le traitement d'une transformation XSLT
- 5. Traitement de la séquence vide dans la fonction XSLT
- 6. XSLT: Utilisation d'un traitement différent dans le mode de traitement actuel
- 7. ignorer les nœuds avec XSLT
- 8. Modification de valeurs avec XSLT
- 9. stucked avec xslt
- 10. avec sortie xslt
- 11. Copie XSLT avec modifications
- 12. tri alphabétique avec XSLT
- 13. Vue détaillée avec XSLT
- 14. Pattern Matching avec XSLT
- 15. XSLT avec éléments superposés?
- 16. XSLT avec l'attribut dynamique
- 17. problème avec XSLT
- 18. traitement vidéo avec opencv
- 19. Traitement FOP avec paramètres
- 20. XML traitement avec XSL
- 21. XSLT: Définir un paramètre avec & ampersand
- 22. Retain nombre de chiffres au cours du traitement entrées-> number-> sortie pendant le traitement XSLT
- 23. Sérialisation avec Qt
- 24. Utiliser SQLite avec Qt
- 25. client wsdl avec Qt
- 26. Style personnalisé avec Qt
- 27. Future Delphi avec Qt
- 28. webservice avec Qt
- 29. Qt invokeMethod avec QString
- 30. comment ajouter un param à xslt avec xslt-ruby?
J'ai essayé aujourd'hui la démo du navigateur de Qt. Il est capable d'appliquer XSLT si l'élément xml-stylesheet est défini, mais il semble il ne sera pas possible de définir dynamiquement l'élément sans modifier les données xml sous-jacentes. – swegi