как убрать в ответном документе в сервисной шине оракула?

Я получаю этот ответный документ при вызове службы с osb:

<FML32>
<FLD_ERRORCODE>5801</FLD_ERRORCODE>
<FLD_ROUTINGFLAG>&#0;</FLD_ROUTINGFLAG>
<FLD_ROUTEDDESTINATION></FLD_ROUTEDDESTINATION>
<FLD_ERRORMESSAGE>Wrong platform for CDR: 78</FLD_ERRORMESSAGE>
</FML32>

Мне нужно удалить вещь (я думаю, это нулевое значение) и заменить ее другим значением, но когда я добавляю действие замены, а затем тестирую службу, я получаю тот же ответ xml, это что на самом деле я делаю в потоке сообщений в ответном действии:

if (contains($body/registerResponse/reg/routingFlag,'&#0;')) 
then (
    replace ./registerResponse/reg/routingFlag in variable body with '000'
    checked Replace node contents
)

Спасибо за вашу помощь.


person Openmindeo    schedule 08.05.2013    source источник


Ответы (3)


Вы можете сначала преобразовать xml в формат текстового сообщения, используя функцию bea:serialize, доступную в OSB, а затем использовать функцию замены, чтобы удалить &#0, а затем результирующий текст можно преобразовать в xml, используя функцию bea:inlinedXML.

person sajeev ramakrishnan    schedule 17.08.2014

Ваш фрагмент кода не соответствует образцу XML.

Предполагая, что это не проблема, попробуйте без содержимого .. просто сделайте if( $body/FML32/FLD_ROUTINGFLAG/text() = ' ').

person Jonathon J Howey    schedule 09.05.2013
comment
Пробовал это, каждый раз, когда я использую переменную $body, я получаю этот ответ документа при тестировании прокси-сервиса: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <register> <response> <code>9999</code> <description> Failure while unmarshalling message: Failed to parse XML text </description> </response> <reg/> </register> </soapenv:Body> </soapenv:Envelope> - person Openmindeo; 10.05.2013
comment
Кажется, я не могу получить доступ к этой переменной из-за неправильного формата этого XML. - person Openmindeo; 10.05.2013

Вы пытаетесь использовать $body/registerResponse/reg/routingFlag, но я не вижу этого в ответе XML, которым вы поделились. Не могли бы вы проверить, правильно ли вы разместили XML?

person systemhalted    schedule 03.06.2013