此 XML 包含要附加的字符串、字符串长度和要附加的字符的详细信息。
<?xml version="1.0" encoding="ISO-8859-1"?>
<data>
<input>
<string>Auckland</string>
<len>12</len>
<char>#</char>
</input>
<input>
<string>Ohio</string>
<len>3</len>
<char>*</char>
</input>
</data>
我还有一个 XSLT,它应该(理想情况下)使用这个逻辑:while(字符串长度 < 指定长度){ concatenate(char, string) } else { 将字符串截断到指定长度}
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="append" match="/">
<xsl:param name="char"></xsl:param>
<xsl:param name="string"></xsl:param>
<xsl:param name="len"></xsl:param>
<xsl:value-of select="$string" />
<html>
<body>
<xsl:for-each select="data/input">
<xsl:choose>
<xsl:when test="string-length(string) < len" >
<xsl:call-template name="append">
<xsl:with-param name="char" select="char" />
<xsl:with-param name="string" select="concat(char,string)" />
<xsl:with-param name="len" select="len" />
</xsl:call-template>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
出于某种原因,循环没有按预期工作。循环执行一次并显示结果。
例如,对于第一个 XML 输入,输出应该是####Auckland,但结果是#Auckland。你能帮我找出这段代码中的缺陷吗?提前感谢您的帮助。