我似乎无法弄清楚这个问题。我试图让xml呈现html标签。我使用.text()的问题将显示但不能识别任何html标签。如果我使用.html()或只是调用var long2 = $(this).find('long');什么都不会出现在Safari或IE中。
我有xml段落 我这里的文字需要粗体标签或标签这就是为什么我需要识别xml中的html标签。
代码:
$(document).ready(function(){
$.ajax({
type: "GET",
url: "xml/sites.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('site').each(function(){
var id = $(this).attr('id');
var title = $(this).find('title').text();
var Class = $(this).find('class').text();
$('<div class="'+Class+'" id="link_'+id+'"></div>').html('<p class="title">'+title+'</p>').appendTo('#page-wrap');
$(this).find('desc').each(function(){
var url = $(this).find('url').text();
var long = $(this).find('long').text();
$('<div class="long"></div>').html(long).appendTo('#link_'+id);
$('#link_'+id).append('<a href="http://'+url+'">'+url+'</a>');
var long2 = $(this).find('long');
$('<div class="long2"></div>').html(long2).appendTo('#link_'+id);
});
});
}
});
答案 0 :(得分:2)
.html()
不适用于XML文档。您应该使用<![CDATA[your code here]]>
将HTML内容包装在XML文件中。
答案 1 :(得分:0)
我曾经在处理一些xslt时遇到过这个问题。显然在webkit和一些IE版本中你无法解析不符合你的doctype的html。因此,jquery将无法使用节点。但是,有一个解决方案,您可以使用节点名称$('[nodeName=long]',xml)