XSLT将多个输入文件从hocr转换为AltoXMLSaxon

XSLT将多个输入文件从hocr转换为AltoXMLSaxon,xslt,saxon,Xslt,Saxon,使用Saxon将多个输入文件从hocr转换为alto xml(每个输入文件都需要一个xml输出)有困难,因此我可以一次转换一个文件,但在尝试对多个文件使用collection()命令时,收到错误消息“Source file collection('file:\c:?select=*(hocr))不存在”。所以我知道我使用的路径有问题,但不确定在这种情况下正确使用collection()应该是什么。任何帮助都将不胜感激。我一直在尝试的完整命令是: java-cp saxon-he-10.1.jar

使用Saxon将多个输入文件从hocr转换为alto xml(每个输入文件都需要一个xml输出)有困难,因此我可以一次转换一个文件,但在尝试对多个文件使用collection()命令时,收到错误消息“Source file collection('file:\c:?select=*(hocr))不存在”。所以我知道我使用的路径有问题,但不确定在这种情况下正确使用collection()应该是什么。任何帮助都将不胜感激。我一直在尝试的完整命令是:

java-cp saxon-he-10.1.jar net.sf.saxon.Transform-t-s:collection('file:///c:/?select=*(hocr))-xsl:hocr到ALTO master\hocr__alto2.0.xsl-o:SaxonHE10-1J

也试过

java-cp saxon-he-10.1.jar net.sf.saxon.Transform-t-s:collection('file:///c:/?select=_*.hocr)-xsl:hocr到ALTO master\hocr\uu alto2.0.xsl-o:SaxonHE10-1J


命令行上的-s选项需要文件名或URI,而不是XPath表达式

如果要调用collection()函数,它必须在XPath表达式中,通常在样式表中(尽管它也可以在命令行中使用
?param=collection('s)设置的样式表参数中)file:///c:/?select=*xml')


还要注意,collection函数的参数是一个URI,而不是Windows文件名,并且URI从不包含反斜杠。select参数是一个“glob”,通常以
select=*.xml
的形式出现。我不知道您打算用
select=*(hocr)做什么

谢谢Michael,我删除了collection参数,改为使用-s后跟完整的URI,这对我很有用。谢谢你帮助我解决这个问题!