我喜欢在使用QtWebKit的Qt应用程序中显示一些(X)HTML内容。 内容应该通过XSLT从XML文档生成。使用Qt处理XSLT
由于我是Qt新手,我的问题如下:
1)QtWebKit可以使用xml-stylesheet元素设置来显示XML文档吗?
2)Qt可以将XSLT应用于XML文档并将结果作为字符串返回或将其写入文件?
我喜欢在使用QtWebKit的Qt应用程序中显示一些(X)HTML内容。 内容应该通过XSLT从XML文档生成。使用Qt处理XSLT
由于我是Qt新手,我的问题如下:
1)QtWebKit可以使用xml-stylesheet元素设置来显示XML文档吗?
2)Qt可以将XSLT应用于XML文档并将结果作为字符串返回或将其写入文件?
QtWebKit和xslt总是分离的,将它们组合起来总是一个待办事项 - 不知道当前状态是什么,但是您可以通过示例轻松进行测试。
或者遵循http://labs.trolltech.com/blogs/2010/03/03/qtwebkit-releases/
随着QXmlQuery
,你可以对一个XSL模板处理XML文档,然后将结果传递给QWebView::setHtml(QString)
(最新版本的Qt将使用QWebEngineView::setHtml(..)
。
QString out;
QXmlQuery query(QXmlQuery::XSLT20);
query.setFocus(QUrl("myInput.xml"));
query.setQuery(QUrl("myStylesheet.xsl"));
query.evaluateTo(&out);
webview->setHtml(out);
你可以找到这段代码和更多的信息在QXmlQuery documentation。
QXmlQuery可以解析嵌入在XML文件中的xsl链接而不是调用setQuery吗?我的意思是,在代码片段中,如果“myInput.xml”包含指向XSL文件的链接,并且XSL文件还包含以递归方式引用其他XSL文件,那么QXmlQuery如何应用于加载所有样式表?可能它已经这样做了?或者是setQuery始终需要? (在这种情况下,应该扫描XML和XSL文件以构建依赖树或类似的东西)。 – Claudix 2013-01-07 17:13:24
@Claudix,如果您的问题仍然有效,请考虑[将其作为新问题](http://stackoverflow.com/questions/ask)。是的,这是可能的。 – Abel 2015-09-10 11:11:00
我今天试过Qt的浏览器演示。如果设置了xml-stylesheet元素,它能够应用XSLT,但似乎无法动态设置元素而不更改基础xml数据。 – swegi 2010-03-15 14:33:17