如何使用XSLT 1.0替换XML元素的字符串?
来源:
<body>This has a keyword and may have another keyword</body>
期望的输出:
<body>This has a <kw>keyword</kw> and may have another <kw>keyword</kw></body>
我有以下模板,但它只支持用文本替换字符串。
<xsl:template name="replace-string">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="with"/>
<xsl:choose>
<xsl:when test="contains($text,$replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$with"/>
<xsl:call-template name="replace-string">
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="with" select="$with"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
任何提示都会有所帮助。
感谢。
答案 0 :(得分:1)
根据您已有的内容,看起来缺少的是&lt; xsl:element name =“keyword”/&gt;如果元素名称是动态的,请使用&lt; xsl:element name =“{XP}”/&gt;其中XP是XPath表达式。