【问题标题】:XSLT processing with Qt使用 Qt 进行 XSLT 处理
【发布时间】:2011-01-26 20:11:58
【问题描述】:

我喜欢使用 QtWebKit 在 Qt 应用程序中显示一些 (X)HTML 内容。 内容应通过 XSLT 从 XML 文档生成。

由于我是 Qt 新手,我的问题如下:
1) QtWebKit 能否显示带有 xml-stylesheet 元素集的 XML 文档?
2) Qt 能否将 XSLT 应用于 XML 文档并将结果作为字符串返回或写入文件?

【问题讨论】:

    标签: qt xslt


    【解决方案1】:

    使用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?。我的意思是,在您的代码 sn-p 中,如果“myInput.xml”包含指向 XSL 文件的链接,并且 XSL 文件还包含以递归方式对其他 XSL 文件的引用,那么 QXmlQuery 如何应用于加载所有样式表?它可能已经这样做了吗?还是总是需要 setQuery? (在这种情况下,应该扫描 XML 和 XSL 文件以构建依赖关系树或类似的东西)。
    • @Claudix,如果您的问题仍然有效,请考虑asking it as a new question。是的,这是可能的。
    【解决方案2】:

    QtWebKit 和 xslt 总是分开的,将它们组合起来总是一件待办事项 - 不确定当前状态是什么,但您可以通过示例轻松地对其进行测试。

    或关注http://labs.trolltech.com/blogs/2010/03/03/qtwebkit-releases/

    【讨论】:

    • 我今天试用了Qt的浏览器demo。如果设置了 xml-stylesheet 元素,它能够应用 XSLT,但似乎无法在不更改底层 xml 数据的情况下动态设置元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2020-07-03
    相关资源
    最近更新 更多