Проблема на верблюжьем маршруте - анализ XML-тегов - PullRequest
0 голосов
/ 26 октября 2018

У меня сложный верблюжий маршрут, который начинается с маршрута инициализации, который пытается установить заголовки с информацией из XML, используемого в качестве входных данных.

Интересно, как маршрут не в состоянии анализировать содержимое XML, используя XPath.

Перед вызовом маршрута я печатаю информацию XML в моем JUNIT Java, и он печатается правильно,со всеми тегами XML.

Итак, я знаю, что информация отправляется так, как я ожидал.

Но этот маршрут, который должен устанавливать заголовки с использованием XPath, возвращается пустым к любому выражению, которое я пытаюсь использовать!Я даже использовал инструмент XPath, чтобы помочь мне (https://codebeautify.org/Xpath-Tester),, чтобы проверить, была ли какая-то ошибка в кодировании xpath, но я получил оттуда нужные результаты.

Итак, предположим, у меня есть XMLкак:

<bic:Test>
    <bic:context>       
            <bic:memberCode>GOOGLE</bic:memberCode>
    </bic:context>
</bic:Test>

Итак, со строкой ниже:

<setHeader headerName="myHeader">
                <xpath resultType="java.lang.String">//<anyTag>/text()</xpath>
</setHeader>

или

<setHeader headerName="myHeader">
                <xpath resultType="java.lang.String">//<anyTag></xpath>
</setHeader>

Я увижу заголовок с пустым содержимым.

Я пробовал так много разных вещей, что в конце концов решил распечатать весь контент, используя выражение XPath как /.

Он будет печатать только контент ("GOOGLE"), а не теги.

Не могли бы вы мне помочь?

Заранее спасибо!

1 Ответ

0 голосов
/ 26 октября 2018

Вероятно, это проблема, связанная с пространством имен.Вы должны определить двоичное пространство имен в контексте верблюда, а затем использовать его в выражении xpath.

Ознакомьтесь с документацией в https://github.com/apache/camel/blob/master/camel-core/src/main/docs/xpath-language.adoc и, в частности, в примере «Использование конфигурации XML»

Также обратитесь к разделу «Аудит пространства имен для облегчения отладки» для получения дополнительной информации об отладке проблем, связанных с пространством имен в верблюде. ​​

...