Отображение содержимого XML на странице HTML - PullRequest
51 голосов
/ 22 сентября 2011

Как отобразить XML и другие типы данных на той же странице?

    <?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <country>Columbia</country>
        <price>10.90</price>
        <year>1985</year>
    </cd>
</catalog>

Приведенный выше XML должен отображаться в том виде, как он есть при форматировании.Кроме того, я хотел бы отображать HTML-таблицы и другие вещи на моей странице.Как этого добиться?

  1. Я получаю XML в STRING, а не через файл.
  2. Я не хочу его анализировать
  3. Я хочу отобразить (вот и все))
  4. Если вы говорите о XSLT (приведите пример)
  5. Я думаю использовать плагин Jquery (какие-нибудь примеры?)

Ответы [ 5 ]

81 голосов
/ 22 сентября 2011

Простое решение - встроить элемент <textarea>, который сохранит форматирование и угловые скобки. Я также удалил границу с style="border:none;", что делает текстовую область невидимой.

Вот пример: http://jsfiddle.net/y9fqf/1/

31 голосов
/ 13 июля 2014

Вы можете использовать старый тег <xmp>.Я не знаю о поддержке браузера, но она все равно должна работать.

<HTML>

your code/tables

<xmp>
    <catalog>
        <cd>
            <title>Empire Burlesque</title>
            <artist>Bob Dylan</artist>
            <country>USA</country>
            <country>Columbia</country>
            <price>10.90</price>
            <year>1985</year>
        </cd>
    </catalog>
</xmp>

Вывод:

your code/tables
<catalog>
    <cd>
        <title>Empire Burlesque</title>
        <artist>Bob Dylan</artist>
        <country>USA</country>
        <country>Columbia</country>
        <price>10.90</price>
        <year>1985</year>
    </cd>
</catalog>
14 голосов
/ 22 сентября 2011

Если вы обрабатываете содержимое как текст , а не HTML , то операции DOM должны приводить к правильному кодированию данных.Вот как вы это сделаете в jQuery:

$('#container').text(xmlString);

Вот как вы это сделаете со стандартными методами DOM:

document.getElementById('container')
        .appendChild(document.createTextNode(xmlString));

Если вы размещаете XML внутри HTMLс помощью серверных сценариев обязательно должны быть функции кодирования, позволяющие вам это делать (если вы добавите свою серверную технологию, мы можем дать вам конкретные примеры того, как вы это сделаете).

13 голосов
/ 26 февраля 2016
<code><pre lang="xml" >{{xmlString}}

Это сработало для меня.Благодаря http://www.codeproject.com/Answers/998872/Display-XML-in-HTML-Div#answer1

1 голос
/ 01 июня 2017

2017 Обновление, я думаю. textarea работал нормально для меня, используя Spring, Bootstrap и кучу других вещей. Получил полезную нагрузку SOAP, сохраненную в БД, прочитанную Spring и отправленную через Spring-MVC. XMP не работал вообще.

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