2012-02-04 2 views
3

Рассмотрим следующий сценарий для вывода какой-то XML-код:Выходной код XML с Jquery

var xmlAsString = '<?xml version="1.0"?><person><name gender="male"></name></person>'; 

    $(document).ready(function(){ 
     $(".generator").click(function(){ 
      alert(xmlAsString); 
      $("#container").append("<div id='contXML'>"+xmlAsString+"</div>") 
    }); 
    }); 

Предупреждение выводит все, как я хочу, но ничего не показывает позже. Если я поставлю некоторую случайную строковую переменную (без символов <> все работает отлично).

ответ

5

Это потому, что вам нужно html кодировать ваш xml, иначе браузер попытается его проанализировать. Я использую эту простую функцию.

var xmlAsString = '<?xml version="1.0"?><person><name gender="male"></name></person>'; 
function htmlEncode(value){ 
    return $('<div/>').text(value).html(); 
} 

$(document).ready(function() { 
    $(".generator").click(function() { 
     alert(xmlAsString); 
     $("#container").append("<div id='contXML'>" + htmlEncode(xmlAsString) + "</div>") 
    }); 
}); 

Fiddle здесь http://jsfiddle.net/DqDEU/

Смежные вопросы