有没有办法用Saxon HE 9.5.1.2来逃避角色? xsl处理器

时间:2014-08-12 14:09:53

标签: xml regex xslt-2.0 saxon altova

我正在写一个xsl:analyze-string来查看日期。当我使用Altova处理器运行它时,我的xslt执行没有问题。然而,当我在Saxon HE 9.5.1.2处理器上运行相同的xslt时,xslt失败,引用正则表达式中的字符10处的语法错误:转义字符' /'不允许"。如果不允许通过\转义正斜杠,是否有另一种方法可以使用Saxon处理器转义字符?

<xsl:analyze-string select="/document/body//td[@class='date']/text()" regex="^(\d{{2}})(\/)(\d{{2}})(\/)(\d{{4}})$">

我将尝试使用:

<xsl:analyze-string select="/document/body//td[@class='date']/text()" regex="^(\d{{2}})(.)(\d{{2}})(.)(\d{{4}})$">  , but it seems like we should be able to use the normal escape.

感谢您的反馈。

2 个答案:

答案 0 :(得分:2)

前锋斜杠不是正则表达式中的特殊字符(元字符),因此不需要进行转义。 XSD / XPath正则表达式方言与许多其他方言不同,它不允许转义字符,除非它们实际上需要被转义 - 原因是它有效地保留了这些转义序列以供将来使用。允许转发斜杠转义的处理器不符合。

答案 1 :(得分:1)

我认为斜杠不需要转义,所以请尝试regex="^(\d{{2}})(/)(\d{{2}})(/)(\d{{4}})$"