0

当我使用setQuery(QUrl(file.xsl))时,它可以工作。但是,如果我将文件加载到 aQString并调用setQuery(theString),则后续evaluateTo()失败(布尔异常和空结果)。

这里有什么问题?

值得注意的是,它setFocus()确实适用于QUrl(file.xml)QString从文件加载。

4

1 回答 1

0

原因是:

  • 我的 xsl 包含document('')用于引用 xsl 本身的带有空 URL 的表达式;
  • Qt 尝试使用基本 URL 解析 URL;
  • setQuery()并且基本 URL 是我的 exe 应用程序文件的路径,这是 Qt 行为:如果在调用中省略应用程序路径,则将其视为基本 URL ;
  • 因此文档的 URL 被解析为 exe 路径 - 然后它尝试将其加载为 xml 并引发异常。

除了这种情况,setQuery(QString)本身一般都可以。

于 2021-09-28T15:05:11.427 回答