使用xslt删除字符

时间:2015-02-04 13:12:07

标签: xml string xslt

我需要使用xsl 1.0从字符串值中删除以下字符:

`, / *` and break line (**<br>**)

我想出了以下内容:

<xsl:value-of select="translate(//string/string/string/string, translate(//string/string/string/string, ',/*<br>'" ', ''), '')" />

但是效果不好,我应该改变什么或者在哪里? 感谢

1 个答案:

答案 0 :(得分:0)

首先始终将问题分解为更小的子集。

函数translate基本上是一个字符级操作。因此,它不适合解决方案的<br>部分。还要注意&lt;和&gt;是xsl / xml中的特殊字符。

因此,假设//string/string/string/string在这里是正确的XPath ..

translate(//string/string/string/string, ',/*','   '):

应足以删除和/或*字符

对于<br>,理想情况下,您希望使用xslt 1.0中不存在的替换函数。如果您在xslt 1中,请查看此问题以获取模板的示例:XSLT string replace

你也可以考虑xslt是否适合这里的工作,但这取决于更广泛的背景。