Проблема декодирования Base64 в SAP PI

Я написал UDF для декодирования текста base64 конечного кода в сопоставлении sap pi. Но после декодирования тегов xml все открытые и закрытые теги заменяются на > <

Пожалуйста, найдите ниже скриншот кода.

public String Base64Decoder(String EncodedString, Container container) throws StreamTransformationException
{
//Variable to hold decoded string
String decodedString = null;
 byte[] decodedBytes = DatatypeConverter.parseBase64Binary(EncodedString);
try{

//Convert base64 schema to byte array

return new String(decodedBytes,"UTF-8");
//Get the string of decoded byte array


}catch(Exception e) {

}

//Export decoded string
return decodedString;
}

Вывод после декодирования:

<?xml version="1.0" encoding="UTF-8"?>
<ns0:Log xmlns:ns0="http://world.com/pi/M/Log">
<Data>&lt;OUTPUT&gt;&lt;item&gt;&lt;VBELN&gt;0180001027&lt;/VBELN&gt;&lt;WADAT&gt;00000000&lt;/WADAT&gt;&lt;VSTEL&gt;1000&lt;/VSTEL&gt;&lt;KUNNR/&gt;&lt;ITEM&gt;&lt;YITEM&gt;&lt;MATNR&gt;000000000011000082&lt;/MATNR&gt;&lt;LFIMG&gt;1.0&lt;/LFIMG&gt;&lt;MEINS&gt;L&lt;/MEINS&gt;&lt;/YITEM&gt;&lt;/ITEM&gt;&lt;/item&gt;&lt;item&gt;&lt;VBELN&gt;0180001233&lt;/VBELN&gt;&lt;WADAT&gt;00000000&lt;/WADAT&gt;&lt;VSTEL&gt;1000&lt;/VSTEL&gt;&lt;KUNNR/&gt;&lt;ITEM&gt;&lt;YITEM&gt;&lt;MATNR&gt;000000000041000000&lt;/MATNR&gt;&lt;LFIMG&gt;10.0&lt;/LFIMG&gt;&lt;MEINS&gt;LM&lt;/MEINS&gt;&lt;/YITEM&gt;&lt;/ITEM&gt;&lt;/item&gt;&lt;/OUTPUT&gt;</Data>
</ns0:Log>

Данные внутри <Data> тег - это декодированный текст. Но, как видите, все его теги заменены. Например, вместо <OUTPUT> это печать &lt;OUTPUT&gt;

Пожалуйста, дайте мне знать, какие изменения я должен сделать в UDF, чтобы избежать этого.

Кодированная строка в Base64:

PE9VVFBVVD48aXRlbT48VkJFTE4+MDE4MDAwMTAyNzwvVkJFTE4+PFdBREFUPjAwMDAwMDAwPC9XQURBVD48VlNURUw+MTAwMDwvVlNURUw+PEtVTk5SLz48SVRFTT48WUlURU0+PE1BVE5SPjAwMDAwMDAwMDAxMTAwMDA4MjwvTUFUTlI+PExGSU1HPjEuMDwvTEZJTUc+PE1FSU5TPkw8L01FSU5TPjwvWUlURU0+PC9JVEVNPjwvaXRlbT48aXRlbT48VkJFTE4+MDE4MDAwMTIzMzwvVkJFTE4+PFdBREFUPjAwMDAwMDAwPC9XQURBVD48VlNURUw+MTAwMDwvVlNURUw+PEtVTk5SLz48SVRFTT48WUlURU0+PE1BVE5SPjAwMDAwMDAwMDA0MTAwMDAwMDwvTUFUTlI+PExGSU1HPjEwLjA8L0xGSU1HPjxNRUlOUz5MTTwvTUVJTlM+PC9ZSVRFTT48L0lURU0+PC9pdGVtPjwvT1VUUFVUPg==

1 ответ

Если вы говорите, что <Data>&lt;OUTPUT&gt;&lt;... неверно только потому, что вы видите &lt; вместо < внутри строки XML, это просто недоразумение с вашей стороны.

В XML необработанный символ < всегда представлен &lt;,

Другие вопросы по тегам