XSLT - 删除特殊字符

时间:2017-10-24 12:52:35

标签: xml xslt

我想从内容中删除特殊字符和空格

<litem><para>■ <emph type="bold">Target:</emph> Water</para></litem>
<litem><para>◆ Wound-healing response within the dermis and epidermis via application of heat without creating a traumatic wound</para></litem>

输出将是,

<litem><para><emph type="bold">Target:</emph> Water</para></litem>
<litem><para>Wound-healing response within the dermis and epidermis via application of heat without creating a traumatic wound</para></litem>

我使用过这个XSLT,

<xsl:output use-character-maps="m1"/>    
<xsl:character-map name="m1">
    <xsl:output-character character="■" string=""/>
    <xsl:output-character character="◆" string=""/>
</xsl:character-map>

使用上面的xslt时,只会删除特殊字符,而不是不需要的spce。我想用空格删除字符。你能指导我们吗?

1 个答案:

答案 0 :(得分:1)

尝试<xsl:template match="item/para/text()[1][matches(., '^[■◆]\s*')]"><xsl:value-of select="replace(., '^[■◆]\s*', '')"/></xsl:template>只会删除text() para item的{​​{1}}子项中的任何文字,如果它们以这两个字符中的一个开头,后跟可选项白色空间。如果要对其他文本节点具有相同的效果,可能需要调整match模式,但关键是在正则表达式模式中使用^来指示仅匹配字符串的开头