Как отобразить объект XMLDocument с помощью JavaScript? - PullRequest
0 голосов
/ 25 февраля 2011

Моя проблема заключается в следующем: в моем javascript я загружаю документ XML с сервера.

var xmlDom =  document.implementation.createDocument("","",null);
xmlDom.async=false;
xmlDom.load("init.xml");

Затем пользователь может изменить этот документ XML, отредактировав различные элементы формы отображаемой веб-страницы.Когда я закончу, я бы хотел открыть новую вкладку браузера и показать там измененный XML, чтобы пользователь мог сохранить его.Вопрос в том, как это сделать, не отправляя xmlDocument на сервер и обратно.Мой текущий хак ничего не отображает на странице, но, по крайней мере, показывает xml в источнике страницы.

    xmlWindow = window.open("");
    xmlWindow.document.open("text/xml");
    xmlWindow.document.write(serializer.serializeToString(xmlDom));
    xmlWindow.document.close();
    xmlWindow.focus();

Кто-нибудь знает, как это сделать правильно?

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Наконец-то нашел способ получить то, что я хочу (по крайней мере для не-то есть браузеров). Я использую так называемый DataUri, который позволяет представить XML-документ в виде ссылки. При нажатии на ссылку браузер обрабатывает данные так же, как если бы я загружал их с сервера. Например, xsl-таблицы стилей обрабатываются. вот код (jQuery), который я использую:

$ ('# xmllink'). Attr ('href', 'data: text / xml,' + xml2Str (xmlDom) .replace (/ "/ gi," '"));

функция xml2str сериализует документ xml в строку.

1 голос
/ 25 февраля 2011

Вам нужно будет HTML кодировать ваш XML для его отображения. Используйте for> и т. Д. Окружите тегом pre или поместите его в качестве данных в document.createTextNode (data) .

Вы также можете создать текстовую область в своем документе в новом окне и поместить строку XML в текстовое поле.

Больше информации в этом вопросе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...