如何通过XSLT在<use_arg_label>标签前后添加空格?
嘿,刚接触XSLT对吧?别担心,这个小问题很好解决~
你之前的模板是直接把<use_arg_label/>替换成了空格,现在要保留这个标签同时在它前后加上空格,只需要调整一下匹配use_arg_label的模板就行。核心思路是保留原节点本身,同时在它的前后插入空格。
给你一个完整的XSLT示例:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- 默认模板:复制所有未被特殊处理的节点和属性,保证其他内容原样输出 --> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!-- 专门处理use_arg_label节点:前后加空格,同时保留节点本身 --> <xsl:template match="use_arg_label"> <xsl:text> </xsl:text> <xsl:copy/> <xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet>
简单解释下:
- 第一个模板是XSLT里的“默认兜底模板”,它会复制所有你没有单独写模板处理的节点和属性,这样
<short_desc>这类标签和其他文本都会原样保留。 - 第二个模板专门匹配
use_arg_label:先输出一个空格,然后用<xsl:copy/>把原节点完整复制出来(也就是保留<use_arg_label/>标签),最后再输出一个空格。这样替换后,原来的Hello<use_arg_label/>World就会变成Hello <use_arg_label/> World,完全符合你的需求~
内容的提问来源于stack exchange,提问作者Rajat Khanna
相关产品推荐
相关产品推荐

