是否可以通过SHELL脚本运行XSLT文件

时间:2018-12-12 11:45:33

标签: bash shell unix

我有下面的XSLT文件,我只想通过SHELL脚本运行它。

 <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" />
        </xsl:copy>
    </xsl:template>

    <xsl:template match="test-method[@status = 'FAIL']"/>
</xsl:stylesheet>

示例XML:

<?xml version="1.0" encoding="UTF-8"?>
    <test-result>
    <test-method status="PASS" name="beforeTestSetup" is-config="true" duration-ms="705" started-at="2018-08-16T21:39:59Z" finished-at="2018-08-16T21:39:59Z">
    <params>
    <param index="0">
    <value> <![CDATA[org.testng.TestRunner@31c2affc]]> </value>
    </param>
    </params>   
    </test-method>
    <test-method status="FAIL" name="beforeTestSetup" is-config="true" duration-ms="805" started-at="2018-08-16T21:39:59Z" finished-at="2018-08-16T21:39:59Z">
    <params>
    <param index="0">
    <value> <![CDATA[org.testng.TestRunner@31c2affc]]> </value>
    </param>
    </params>   
    </test-method>
    <test-method status="PASS" name="TEST" is-config="true" duration-ms="905" started-at="2018-08-16T21:39:59Z" finished-at="2018-08-16T21:39:59Z">
    <params>
    <param index="0">
    <value> <![CDATA[org.testng.TestRunner@31c2affc]]> </value>
    </param>
    </params>   
    </test-method>      
    </test-result>

我只想通过SHELL脚本对示例XML运行上面的xslt,我想在JENKINS shell脚本编辑器中使用它。

有什么办法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要XSLT处理器才能将XSLT样式文件应用于XML输入文件。

为此我们使用xsltproc,而shell命令是

xsltproc [other_options] --output output.xml style.xslt input.xml

有关other_options,请参见xsltproc手册页。简而言之:

SYNOPSIS
       xsltproc [[-V | --version] [-v | --verbose] [{-o | --output} {FILE | DIRECTORY}] |
                --timing | --repeat | --debug | --novalid | --noout | --maxdepth VALUE | --html |
                --encoding ENCODING  | --param PARAMNAME PARAMVALUE  |
                --stringparam PARAMNAME PARAMVALUE  | --nonet | --path "PATH(S)" | --load-trace |
                --catalogs | --xinclude | [--profile | --norman] | --dumpextensions | --nowrite |
                --nomkdir | --writesubtree PATH | --nodtdattr] [STYLESHEET] {XML-FILE | -}