如果有人願意告訴我爲什麼以下<xsl:call-template name="Log">
不起作用?HTML中的XSLT調用模板
XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<TextMessages>
<Message>[Step]</Message>
<Message>Step ID: 1</Message>
<Message>Description</Message>
</TextMessages>
XSLT文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection ></h2>
<p>
<xsl:call-template name="Log">
</xsl:call-template>
</p>
</body>
</html>
</xsl:template>
<xsl:template name ="Log">
<xsl:variable name="break"><br/></xsl:variable>
<xsl:for-each select="TextMessages">
<p>
<xsl:value-of select="."/>
<xsl:value-of select="$break"/>
</p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
的希望輸出:
My CD Collection >
[Step]<br/>
Step ID: 1<br/>
Description<br/>
真正的問題也有我與調用參數,但不知道如果那是問題。
<p>
<xsl:call-template name="Log">
<xsl:with-param name="testId" select="@testId" />
</xsl:call-template>
</p>
<xsl:template name ="Log">
<xsl:param name="testId" />
<xsl:variable name="break"><br/></xsl:variable>
<xsl:for-each select="/t:TestRun/t:Results/t:UnitTestResult[@testId=$testId]/t:Output/t:TextMessages/t:Message">
<p>
<xsl:value-of select="."/>
<xsl:value-of select="$break"/>
</p>
</xsl:for-each>
</xsl:template>
什麼不行?它適用於我的xsltproc .. – user993553
@ user993553我認爲w3c是可行的xsl測試,但它在那裏失敗。結果只是寫在一行,沒有模板的工作。 但是,使用http://www.freeformatter.com/xsl-transformer.html#ad-output進行測試,並且看起來像是在工作。 但是,底部仍然不能在我的代碼中工作。 – Emir
請將預期結果**顯示爲代碼**。 –