- Взять исходную полезную нагрузку.< /li>
Выполнить условную замену содержимого XML:
- Если тело содержит строку «is:folio», замените его на «is:ApplicantDataFolio».
- В противном случае замените первое вхождение слова «folio» объявлением пространства имен, а затем замените все вхождения «folio» на «is:ApplicantDataFolio».
- Извлеките определенный элемент XML (ApplicantDataFolio) с помощью XPath после применения преобразований.
В Camel преобразование будет выглядеть следующим образом:
Код: Выделить всё
${body} contains 'is:folio'
${body.replaceAll("is:folio", "is:ApplicantDataFolio")}
${body.replaceFirst("folio", "is:ApplicantDataFolio xmlns:is='urn:digimarc.com:imaging'")}
${body.replaceAll("folio", "is:ApplicantDataFolio")}
//*[local-name()='ApplicantDataFolio']
Код: Выделить всё
soap:Client
Unmarshalling Error: unexpected element (uri:"urn:digimarc.com:imaging", local:"folio"). Expected elements are <{urn:l1id.com:ImageServer}folio>,<{urn:l1id.com:ImageServer}replaceDirective>
Мне нужно воспроизвести эту логику преобразования без использования Apache Camel, а вместо этого с помощью простой Java в контексте веб-службы, отличной от Camel. .
Подробнее здесь: https://stackoverflow.com/questions/792 ... -camel-web