как отобразить xml в JavaScript?

На момент написания статьи (январь 2019 г.) анимация stroke-dashoffset не поддерживалась в Microsoft Edge, и учитывая послужной список Microsoft и быстрые улучшения Edge, можно ожидать, что она не будет работать в ближайшее время.

Пожалуйста, обратитесь к https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6493460/

К сожалению, моя рекомендация правильно отображать анимацию в браузерах, отличных от IE / Edge, и показывать конечный результат только в IE / Edge (чтобы они по-прежнему видели что-то на странице). Чтобы определить текущий браузер пользователя, обратитесь к Как определить браузер Safari, Chrome, IE, Firefox и Opera? .

5
задан Robert Gould 8 December 2008 в 11:46
поделиться

6 ответов

Если Вы хотите, чтобы браузер представил Ваш XML как XML, это должно быть в своем собственном документе, как iframe, или a frame. DIV не сделает задания!

Кроме того, в HTTP заголовок запроса, который служит iframe необходимо отправить Content-Type: text/xml, таким образом, Браузер может понять, что это содержание XML.

Но, если истинно необходимо видеть его в DIV, необходимо будет создать себя XML рендеринг функции XML2HTML. Можно использовать HTML PRE тег для этого, если Ваш XML строка уже отформатирована (разрывы строки и вкладки). В этом случае необходимо будет заменить < кому: &gt; в XML строка.

Заключение: The browser не может представить XML и HTML в том же документе. При необходимости в нем у Вас просто есть к обходному решению он.

7
ответ дан 18 December 2019 в 05:23
поделиться

Вот функция для Вас:

<script type="text/javascript">
<!--
    function xml_to_string(xml_node)
    {
        if (xml_node.xml)
            return xml_node.xml;
        else if (XMLSerializer)
        {
            var xml_serializer = new XMLSerializer();
            return xml_serializer.serializeToString(xml_node);
        }
        else
        {
            alert("ERROR: Extremely old browser");
            return "";
        }
    }

    // display in alert box
    alert(xml_to_string(my_xml));

    // display in an XHTML element
    document.getElementById("my-element").innerHTML = xml_to_string(my_xml);
-->
</script>
8
ответ дан 18 December 2019 в 05:23
поделиться

Выберите свой XML использование Ajax и просто поместите результат в a textarea. Разработайте текстовую область любым путем, Вы хотите.

12
ответ дан 18 December 2019 в 05:23
поделиться

Когда Вы не хотите использовать целую платформу JavaScript только для этого...

function insertLiteral(literalString, targetElement)
{
    var textNode = document.createTextNode(literalString);
    targetElement.appendChild(textNode)
    return textNode;
}

// test it (for the example, I assume #targetDiv is there but empty)
var xmlString = "<this><is_some><xml with='attributes' /></is_some></this>";
var targetElement = document.getElementById("targetDiv");
var xmlTextNode = insertLiteral(xmlString, targetElement);

#targetDiv мог быть разработан с помощью CSS:

#targetDiv {
  font-family: fixed;
  white-space: pre;
}
6
ответ дан 18 December 2019 в 05:23
поделиться

Одна техника состояла бы в том, чтобы использовать два iframe элемента с набором атрибута src к соответствующему XML-файлу, доступному с сервера (предполагающий, что это выставляется через виртуальный каталог):

<iframe src="/myapp/Document1.xml"><iframe src="/myapp/Document2.xml">

С другой стороны, Вы могли потенциально использовать запрос типа AJAX, чтобы получить xml документы и затем встроить их в документ HTML динамично с помощью чего-то как:

getElementById("myDiv").innerText = ajax.response;
1
ответ дан 18 December 2019 в 05:23
поделиться

Проблема состоит в том, что необходимо выйти из символов, которые синтаксический анализатор HTML интерпретирует как разметка: и, и в некоторых случаях "и'

Базовый JavaScript не предоставляет это Вам, но многие дополнительные библиотеки делают.

Например, Прототип имеет: http://www.prototypejs.org/api/string/escapeHTML

3
ответ дан 18 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: