如果某些内容与模板匹配,是否可以在XSL转换期间调用程序

时间:2016-05-08 12:42:00

标签: xslt

如果某些内容与模板匹配,是否可以在XSL转换期间调用程序(例如Perl脚本)

script_execute(script, your_shooter.id);

2 个答案:

答案 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 });
相关问题