Можно ли сохранить XML как JSON (я бы предположил, что это будет)? Например, в PHP вы можете преобразовать XML в массив или объект, а затем преобразовать его в JSON с помощью json_encode
. Затем вы можете отобразить это как переменную javascript следующим образом:
В PHP:
<?php
$xml = "<div><outer><inner>abc</inner><inner>def</inner></outer></div>";
$xml_object = simplexml_load_string(xml);
$json = json_encode($xml_object);
?>
<script language="javascript">
$(function() {
// eval() is okay to use if you know where the JSON is
// coming from (and, of course, you do...)
var data = eval('<?php echo $json; ?>');
$(document).data('myapp.data',data);
});
</script>
И теперь, когда вам нужен доступ к этим данным, вы можете просто получить их так:
function some_function() {
var data = $(document).data('myapp.data');
$.each(data.div.outer,function() {
// Would alert 'abc' then 'def'
alert(this.inner);
});
}
Надеюсь, все это имеет смысл. По крайней мере, вам больше не придется беспокоиться о XML на стороне клиента. Конечно, если вам абсолютно необходимо, я обнаружил, что это работало для меня в прошлом:
var xml = "<div><outer><inner>abc</inner><inner>def</inner></outer></div>";
var $xml = $('<div />').append(xml);
alert("[" + $xml.find("outer").html() + "]");
Редактировать
Я изменил свой код, чтобы использовать фактический XML-файл, который вы предоставляете - не уверен, где я там перепутал (должно быть, случайно взял фрагмент из чужого ответа) Вы действительно должны дать мне первое предложение - оно должно сработать.