XQuery все файлы в определенном каталоге? - PullRequest
11 голосов
/ 09 апреля 2011

Можно ли использовать XQuery для запроса всех файлов XML в определенном каталоге? Все файлы XML имеют одинаковую структуру.

Кроме того, из того, что я видел, вы можете XQuery много файлов, но вам нужно написать их имена в запросе. В моем случае мне нужно запросить 500 файлов XML с совершенно разные имена каждого. Так есть ли способ, которым я могу сказать:

for $x in doc("ALL files under a specific directory")/Foo
return $x/Something

Ответы [ 3 ]

7 голосов
/ 09 апреля 2011

Используйте функцию collection() .

В своей реализации саксонской можно использовать:

collection('file:///a/b/c/d?select=*.xml')
1 голос
/ 11 апреля 2011

Для MarkLogic:

for $x in cts:search(fn:doc()/Foo, cts:directory-query("/target/directory/"))
return $x/Something
0 голосов
/ 17 августа 2014

Используйте функцию collection ().

В своей саксонской реализации можно использовать: Коллекция ( 'Файл: /// а / б / с / d выберите = * XML?'.)

Я попробовал этот пример под Windows 7 с Saxon HE 9.5.1.5J. URI тогда принимает другую форму, например: Файл: / C:. / работа / GIT / managedSoftwareDoc / экспериментируя / XQUERY выберите = * XML

...