У меня проблема с XSLT replace()
.xslt найти и заменить regex-lookarounds
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>
Проблема заключается в том <
характер!
Как правило, синтаксис регулярного выражения XPath является подмножеством того, что позволяют PHP и Perl, и вы не должны предполагать, что вы можете просто повторно использовать регулярное выражение PHP таким образом. Обычно есть другой способ добиться того, чего вы хотите, часто проще. –