Saxon XSLT 可以将 XML 保存到 eXist-db 吗?我搜索了文档和论坛,但找不到任何明确记录的内容。我可以使用
doc('http://localhost:8080/exist/rest/db/winequest/mysave.xql')
从 eXist-db 中读取数据,但没有看到编写 XML 的显式方法。我已经尝试过这个,但它默默地不执行 mysave.xql。
<xsl:result-document href="http://localhost:8080/exist/rest/db/mysave.xql">
<xsl:sequence select="$node"/>
</xsl:result-document>
我猜 Saxon 不认为 http: 作为可行的结果文档目的地,即通过 POST。或者换句话说,我希望将 XML 内容的 http POST 发送到 eXist-db 上的 Xquery,以便它可以存储该 XML。我也许可以使用
doc($url)
对一些 XML 进行 URL 编码,但这很快就会遇到限制。
那么 Saxon XSLT 将 XML 保存到 eXist-db 的首选机制是什么?
当您从 Java 调用 Saxon 时,您可以调用
Xslt30Transformer.setResultDocumentHandler(...)
来提供回调函数,该函数将被调用来处理 xsl:result-document
指令的输出。回调函数提供了一个 URI,并返回 Saxon 将写入的 Destination
。 Destination
可以是您喜欢的任何内容;您可以在此处实现逻辑,将结果文档写入 eXist 数据库。