1

我有一个问题XSLT replace()

XML

<root>
<title>I am title</title>
<body>
the new formula is:<br/>
the speed test 234 km/h<br>
the weight is 49 kg<br/>
in the 1492 Lorenzo de Medici die.
etc.
<dida>the mass is 56 kn</dida>
</body>
</root>

我必须更换测量系统编号后的所有空间。

PHP我发现这个正则表达式:

((?<=\d)\s(?=km|kg|kn))

XSLT我有:

<xsl:template match="//*/text()">
<xsl:value-of select="replace(., '\(\(?\<=\\d\)\\s\(?=km\|kg\|kn\)\)', '&nbsp;')"></xsl:variable>
</xsl:template>

问题是<性格!

4

1 回答 1

1

文字字符串中 '<' 的常用表示法是&lt;

然而,这并没有解决我的 XSLT 处理器(Kernow,使用 Saxon 9.1.0.3)的问题。正如它出现的那样,它不需要括号和竖线的所有转义。此外,环顾四周没有工作。我能够使用

<xsl:value-of select="replace(., '(\d)\s(km|kg|kn)', '$1!$2')"></xsl:value-of>

(为了清楚起见,用“!”替换)。

您的示例中还有一些其他基本错误,我必须首先修复:<br>未正确关闭,您不能<xsl:value-of ..</xsl:variable>.

于 2013-07-23T11:18:41.857 回答