2013-05-08 2 views
0

나는이 응답 문서를 받고 있어요 :oracle 서비스 버스의 응답 문서에서 �을 제거하는 방법은 무엇입니까? 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> 
나는 & # 0을 제거해야

; (null 값)라고 생각하고 다른 값으로 바꿉니다.하지만 대체 액션을 추가 한 다음 동일한 XML 응답을받는 서비스를 테스트하면 실제로 메시지 흐름에서 수행하고있는 작업입니다. 대응 조치 :

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

도움 주셔서 감사합니다.

답변

0

코드 스 니펫이 XML 샘플과 일치하지 않습니다.

그게 문제가되지 않습니다 가정, 다만 경우에 할 수 있습니다 .. 포함하지 않고 시도 ($ 바디/FML32/FLD_ROUTINGFLAG/텍스트를() = '').

+0

$ body 변수를 사용할 때마다 프록시 서비스를 테스트 할 때이 문서 응답을 받았습니다. ' 9999 실패 비 정렬 화 메시지 동안 : XML 텍스트 를 구문 분석하는 데 실패 Openmindeo

+0

해당 XML의 잘못된 형식으로 인해 해당 변수에 액세스 할 수없는 것으로 보입니다. – Openmindeo

0

$ body/registerResponse/reg/routingFlag를 사용하려고하지만 공유 한 응답 XML에서 동일한 내용을 볼 수 없습니다. 올바른 XML을 게시했는지 확인하십시오.

1

먼저 OSB에서 사용할 수 bea:serialize 기능을 사용하여 텍스트 메시지 형식으로 XML을 변환 할 수 있습니다 다음 &#0을 제거하기 위해 대체 기능을 사용하고 그 결과 텍스트가 bea:inlinedXML 기능을 사용하여 XML로 변환 할 수 있습니다.