2012-06-26 3 views
1

Я пытаюсь проанализировать следующий XML со следующим jQuery. На странице ничего не отображается. Я знаю, что это файл. Я смотрел онлайн, и хотя есть много примеров синтаксического анализа xml с jquery, ни один из них не выглядел как это форматирование.Анализ комплекса XML с jQuery

XML:

<?xml version="1.0" encoding="utf-8"?> 
<wcm:root xmlns:wcm="http://www.stellant.com/wcm-data/ns/8.0.0" version="8.0.0.0"> 

    <wcm:element name="title"></wcm:element> 
    <wcm:element name="wide_image">&lt;img src=&#39;[!--$wcmUrl&amp;amp;x28;&#39;resource&amp;#39;,&amp;#39;CMS3_130980&amp;#39;&amp;amp;x29;--]&amp;#39;/&gt;</wcm:element> 
    <wcm:element name="image">&lt;img src="[!--$wcmUrl('resource','CMS3_132821')--]"/&gt;</wcm:element> 
    <wcm:element name="body">&lt;p&gt; 
     Paragraph of text goes here.&lt;br /&gt;&lt;br /&gt; 
     Paragraph of text goes here.&lt;br /&gt;&lt;br /&gt; 
     Paragraph of text goes here.&lt;br /&gt;&lt;br /&gt; 
     Paragraph of text goes here.&lt;br /&gt;&lt;br /&gt; 
     Paragraph of text goes here.&lt;/p&gt; 
</wcm:element> 
</wcm:root> 

HTML & JQuery:

<html> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

<script type="text/javascript"> 

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "link_to_my_file.xml", 
     dataType: "xml", 
     success: parseXml 
    }); 
}); 

function parseXml(xml){ 
    $(xml).find("wcm\\3a root").each(function(){ 
    alert("Test"); 
     $("#output").append($(this).attr("title") + "<br />"); 
     $("#output").append($(this).attr("wide_image") + "<br />"); 
     $("#output").append($(this).attr("image") + "<br />"); 
     $("#output").append($(this).attr("body") + "<br />"); 
     }); 
    }; 

</script> 

<div id="output"></div> 

</html> 
+0

Функция 'parseXml' не уничтожена ... вам нужно'} 'там. Использование отступов позволит вам легче увидеть эти проблемы. – Esailija

+0

@Esailija Спасибо, что указали это. Я обновил код выше, теперь никаких консольных ошибок. –

ответ

0

Вы должны escape: в селекторе: http://mothereff.in/css-escapes#1wcm%3Aroot

Таким образом, вместо того, чтобы:

$(xml).find("wcm:root") 

Использование:

$(xml).find("wcm\\3a root") 

Кроме того, ваш фрагмент кода недействительна JavaScript (отсутствует } после объявления о parseXml функции). Проверьте консоль ошибок.

+0

Спасибо, я обновил выше описанную функцию parseXml. Все еще не работает. Однако я не получаю никаких ошибок в моей консоли ошибок. –

+0

в jQuery '.find (" wcm \\: root ")' должен работать. – Esailija

+0

@ Esailija Да, но я бы предпочел использовать '\ 3a', поскольку это работает в CSS в IE <8, а' \: '- нет. Безопаснее всего использовать '\ 3a'. Подробнее см. Http://mathiasbynens.be/notes/css-escapes. –

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