XSLT collection() 函数正则表达式无法识别'?'



我正试图从下面的列表中抓取3.XML到6.XML:

xml

3.xml

4.4 _1.xml

xml

5.5 _1.xml

xml

6.xml

31.

collection('file:///.../?select=[3-6](_[0-9]+)?.XML只抓取4_1.XML和5_1.XML,因此不能识别'?'。对如何解决这个问题有什么建议吗?我使用的是Saxon-PE 9.5.1.3。

谢谢,@Florent,你的诊断是正确的。

虽然文档没有提到,在这个类球形模式中,不仅*被视为意义*(任何字符序列),而且?被视为有意义的。(任何单个字符,或无)。

我找到了一个解决方法,这是用%7B0,1%7D -即{0,1} %-转义来替换regex中的"?",以使其在URI中有效。

集合URI中参数select的值不是正则表达式,它是一个类似全局的模式(就像您在shell中使用的那样)。详细信息请参见文档

在你的情况下,我认为你能做的最好的是?select=*.XML恐怕。

最新更新