我已经成功地使用样式表通过 XLST document() 函数调用远程 Web 服务。Web 服务的 URL 需要使用变量设置的参数。一个典型的 document() 调用如下所示:
<xsl:value-of select="document(concat(
'http://example.com/api/find/',
'?find=service_name&term=',
$searchterm,
'&type=',
$search_type))
//value"/>
在桌面上使用带有 Saxon-EE 或 LIBXML 的 Oxygen 可以正常工作。我想将其转换为使用 perl 的脚本化工作流。在脚本的上下文中运行时,查找会静默失败。同样,如果我尝试从命令行使用 Saxon 转换文档:
java -jar /Applications/oxygen/lib/saxon.jar test.xml my.xsl
document() 查找失败。
我假设脚本和命令行上下文中的失败是由于安全性造成的,尽管我没有收到任何错误消息。
我的问题是:跨域安全是否是查找失败的原因,是否有潜在的解决方法,或者我需要采取其他方法吗?
有关信息,Web 服务返回的数据如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<result resultCount="1">
<value>Search result value</value>
</result>