Конвертировать XML в Base64, используя Javascript - PullRequest
0 голосов
/ 01 мая 2018

В моем коде я преобразовал данные из модели JSON в XML. Чтобы обеспечить правильное форматирование, я анализирую созданную строку XML в XML Doc. (API не может работать с плохо отформатированным XML)

Поэтому мне нужна помощь в преобразовании моей переменной XML Doc в Base64 (вместо моей строки XML) с использованием Javascript.

var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlDataString,"text/xml");

Кто-нибудь знает функцию кроме btoa () , которая используется для преобразования строк?

Использование btoa (xmlDataString) возвращает ошибку API «Ошибка синтаксического анализа XML: неправильно сформировано», а использование btoa (xmlDoc) возвращает Base64, которое возвращается при повторном декодировании: «[object XMLDocument]"

Спасибо

1 Ответ

0 голосов
/ 01 мая 2018

Сериализуйте ваш XML, а затем преобразуйте в Base64: (новый XMLSerializer ()). SerializeToString (xml);

prolog = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';
var parser = new DOMParser();
XmlStr = prolog + "<bookz/>";
var xmlz  = parser.parseFromString(XmlStr, "application/xml");
console.log(window.btoa((new XMLSerializer()).serializeToString(xmlz)));

Результат:

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pgo8Ym9va3ovPg==

...