如果有人愿意告诉我为什么以下<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
请将预期结果**显示为代码**。 –