Мне нужен верблюд, чтобы отфильтровать файл на основе значения тега XML-файла - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть XML-файл с тегом <ns:serviceName>. Я должен выбирать этот файл, только если значение serviceName имеет значение «query». Мой код в настоящее время

from(file://path)
...
...


to(url)

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете фильтровать сообщения, полученные из полученных файлов, следующим образом:

Map<String, String> nsMap = new HashMap<String, String>();
nsMap.put( "ns", "http://myuri.com" );

from("file://path")
.filter().xpath("ns:serviceName eq 'enquiry'", nsMap )
.to(url);

Однако при этом будут извлечены все файлы и обработаны только те, которые вас интересуют.

Если вы ищете только для извлечения файлов, которые вы хотите обработать, и оставьте остальные в покое, я думаю, вам нужно будет реализовать объект GenericFileFilter и передать его компоненту Camel File2 с параметром filter,Это не то, что я пробовал, и я подозреваю, что вам в конечном итоге придется прочитать и проанализировать файл, отфильтровать его, затем прочитать и снова проанализировать его по маршруту, что не будет очень эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...