XSLT преобразует несколько входных файлов из hocr в alto xml Saxon - PullRequest
0 голосов
/ 14 июля 2020

Возникли трудности с использованием Saxon для преобразования нескольких входных файлов из hocr в alto. xml (требуется вывод xml для каждого входного файла). Мне удалось преобразовать один файл за раз, но я получаю сообщение об ошибке «Исходный файл collection ('file: \ c :? select = *. (hocr)) не существует', когда я пытаюсь использовать команду collection () для нескольких файлов. Итак, я знаю, что проблема в пути, который я использую, но не уверен, как правильно использовать collection () в этом случае. Любая помощь будет оценена. Полная команда, которую я пробовал:

java -cp saxon-he-10.1.jar net .sf.saxon.Transform -t -s: collection ('file: ///c:/?select=*.(hocr)) -xsl: hOCR-to-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-to-ALTO-master \ hocr__alto2.0.xsl -o: SaxonHE10-1J

1 Ответ

0 голосов
/ 14 июля 2020

Параметр -s в командной строке ожидает имя файла или URI, а не выражение XPath.

Если вы хотите вызвать функцию collection (), она должна находиться в выражении XPath, обычно в таблица стилей (хотя она также может быть в параметре таблицы стилей, заданном из командной строки с использованием ?param=collection('file:///c:/?select=*xml').

Обратите внимание, что аргументом функции сбора является URI, а не имя файла Windows, и URI никогда не содержат backsla sh. Параметр select - это "glob" обычно в форме select=*.xml. Я понятия не имею, что вы намеревались использовать с select=*.(hocr).

...