如果某些内容与模板匹配,是否可以在XSL转换期间调用程序(例如Perl脚本)
script_execute(script, your_shooter.id);
答案 0 :(得分:0)
取决于。我在OxygenXML中成功运行了类似的东西。
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:os-command="java:java.lang.Runtime"
exclude-result-prefixes="xs os-command"
version="2.0">
<xsl:template match="row">
<p>
<xsl:value-of select="a"/>
</p>
<!-- build the OS command string -->
<xsl:variable name="cmd-string" select="concat('perl ',a,' ',b)"/>
<xsl:value-of
select="os-command:exec(os-command:getRuntime(),$cmd-string)"/>
</xsl:template>
</xsl:stylesheet>
我没有在氧气外试过。而且,我不成功执行此操作来执行bash脚本。 Perl可能会造成类似的问题。
此处是原始attempt的链接。
答案 1 :(得分:0)
问:如果某些内容与模板匹配,是否可以在XSL转换期间调用程序
答案取决于您的xslt处理器。
对于perl,请查看XML::LibXSLT register_function
。
注册映射到给定URI的XSLT扩展函数。例如:
XML::LibXSLT->register_function("urn:foo", "bar",
sub { scalar localtime });