2013-02-25 6 views
0

Я не могу понять это и некоторое время его испортить.jquery xml атрибут return undefined

XML:

<page name="bio"> 
<image imageUrl="img/bio.png" link="#"/> 
<texts> 
<pageText><![CDATA[blah 
]]></pageText> 
</texts> 
</page> 

JQuery

$.get('../tfile_main.xml', function(xml){ 
$varbioimg = $(xml).find('page[name="bio"] image'); 
alert($varbioimg.attr('imageUrl')); 
}); 

это возвращает неопределенное значение по какой-то причине, я также пытался найти ('страницы [имя = "био"]> изображение')

ответ

3

попробуйте .parseXML, с помощью селекторов jss jery для разбора xml не рекомендуется

var xml = '<page name="bio"><image imageUrl="img/bio.png" link="#"/><texts><pageText><![CDATA[blah]]></pageText></texts></page>'; 

xmlDoc = $.parseXML(xml); 
$xml = $(xmlDoc);  
console.log($xml.find('page[name="bio"] image')); 

здесь демо http://jsfiddle.net/FVHEU/

+0

спасибо, может ли parseXML() использоваться с внешним XML-файлом? – js82

+0

, если этот файл читается сервером и отправляется как «xml» на клиентскую сторону, тогда да, он может использоваться во внешнем файле ... – dakait

0

В то время как я второй помощью .parseXML, я также должен упомянуть, что ваш оригинальный пример работал для меня. Убедитесь, что ваш XML-файл точно соответствует тому, что вы разместили здесь (с добавлением <?xml version="1.0"> вверху) и перейдите к URL-адресу XML-файла с помощью Firefox; он сообщит вам, есть ли ошибки анализа.