我遇到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\)\)', ' ')"></xsl:variable>
</xsl:template>
问题是<
字符!
答案 0 :(得分: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>
。