2011-02-04 2 views
2

Библиотека «Highcharts» для визуализации приятных интерактивных графиков внутри браузера имеет функцию экспорта, которая отправляет ее внутренне используемую SVG на какое-либо приложение на стороне сервера, которое растеризует ее и отправляет результат PNG, JPEG или PDF для загрузки.Получение полного источника XML из объекта XML DOM

Моя проблема заключается в том, что фоновые изображения и символы, которые могут отображаться внутри браузера, выбрасываются перед экспортом с помощью Highcharts, но я хочу их.

Итак, я прокомментировал все, что удаляет все их теги SVG <image> и т. Д. (Они используют регулярные выражения для дезинфекции их внутреннего SVG, кстати ...).

Но они используют некоторые нестандартные атрибуты для этих тегов <image>, и их координаты сопоставляются по-разному с изображениями, поэтому мне приходится пересчитывать вещи и отбрасывать атрибуты.

Итак, я разбирал их SVG с помощью DOMParser и делал то, что должен был делать, бот теперь я ищу элегантный (или простой) способ получить необработанный xml - я видел, что в Internet Explorer это возможно для получения необработанного xml с использованием атрибута xml объекта документа DOM. Есть ли что-то эквивалентное для всех других браузеров? Сейчас я ищу целое и не могу найти ничего полезного. Спасибо :)

ответ

5

Вы можете использовать XMLSerializer в браузерах, отличных от IE. Следующая функция будет сериализовать узел XML во всех основных браузерах:

function serializeXmlNode(xmlNode) { 
    if (typeof window.XMLSerializer != "undefined") { 
     return (new window.XMLSerializer()).serializeToString(xmlNode); 
    } else if (typeof xmlNode.xml != "undefined") { 
     return xmlNode.xml; 
    } 
    return ""; 
} 
+0

Спасибо :) Она работает :) – stefreak

+1

Несовершеннолетний Гоча, что вы можете получить, например, '<изображение HREF =«foo.png»>' в строка из XMLSerializer, если содержимое не объяснило, добавьте префикс «xlink». Просто то, что нужно знать. Это может произойти, если вы это сделаете, например, 'element.setAttributeNS (« http://www.w3.org/1999/xlink »,« href »,« #mylink »); –

Смежные вопросы