#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().