Если кто-то будет достаточно любезен, чтобы сказать мне, почему следующие <xsl:call-template name="Log">
не будут работать?Шаблон вызова XSLT внутри HTML
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
Пожалуйста, покажите ожидаемый результат ** как код **. –