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



我有下面的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脚本编辑器中使用它。

有什么办法做到这一点吗?

您需要一个XSLT处理器来将XSLT样式文件应用于XML输入文件。

我们使用xsltproc,shell命令是

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

有关其他选项,请参阅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 | -}

最新更新