jquery анализирует html в xml

#jquery #xml #html-parsing

#jquery #xml #html-синтаксический анализ

Вопрос:

У меня есть XML-файл с html-тегами в нем, который я анализирую с помощью jquery ajax. Я могу получить текстовое значение без проблем. Как мне получить html-часть внутри элемента?

Редактировать: я попытался обернуть html в cdata, но предпочел бы использовать xhtml в xml.

 $.ajax({ type: "GET",
                        url: "product.xml",
                        dataType: "xml",
                        success: function (xml) {

                            $(xml).find("product[productid="   selection   "]").each(function () {
                                var $title = $(this).find("title").text();        //get title  
                                var $desc = $(this).find("description").html();          //get description  
                                //$('[nodeName=]',xml)
                                $("#producttitle").html("");
                                $("#productdesc").append($desc);
                                $("#producttitle").append($title);

                            });

                        }  

<product productid="1">
    <title>Active Directory</title>
    <status>noinfo</status>
    <description>
        Headline
        <b>tester</b>
        <ul>
            <li>test list element</li>
        </ul>
    </description>
    <link title=""></link>
</product>
  

Приветствую,
Терри

Комментарии:

1. Ну, в основном обычный jquery.ajax $.ajax({ тип: «GET», url: «product.xml «, Тип данных: «xml», успех: функция (xml) {…. Я получаю значение с помощью переменной $desc = $(this).find(«description»).text();

Ответ №1:

Чтобы получить содержимое с тегами, включенными в качестве тегов, а не экранированными в виде текстового содержимого, используйте html :

 var $desc = $(this).find("description").html();
  

Однако, если вы вставляете это содержимое в документ, вам не нужно получать HTML-код — вы можете просто добавить выделение:

 $(this).find('description').clone().appendTo('#containingElement');
  

clone необходимо импортировать узел.

Комментарии:

1. к сожалению, использование .html () не будет работать с типом данных ajax xml.

2. @Terry Спасибо, я удалил этот фрагмент.

Ответ №2:

попробуйте прочитать XML-файл как html:

$.ajax({ введите: «GET», url: ‘file.xml ‘, Тип данных: «html», успех: функция (xml) { ….

Комментарии:

1. Использование типа данных ‘HTML’ (вместо ‘XML’) помогло решить проблему, при которой синтаксический анализатор jQuery XML не работал из-за неподдерживаемых специальных кодировок символов, содержащихся в XML.

Ответ №3:

Кажется, работает простое использование $ (this).find(«description»).html().