2010-12-14 4 views
0

Je suis en train de se rendre à l'enfant des éléments en XML en utilisant javascript.obtenir enfant xml javascript

Le fichier RSS est: Puis-je utiliser la syntaxe à point? item.title? I'mg ise non définie dans le code ci-dessous

<item> <title><link>

$ (document) .ready (function() {alert = console.log;

var ns = { 
init : function(){ 
     $.ajax({ 
      url: '/calendar/RSSSyndicator.aspx?type=N&number=15&category=8-0%2c4-0%2c6-0%2c10-0%2c7-0%2c17-0%2c16-0%2c9-0%2c5-0%2c3-0%2c2-0&department=3&numdays=31&ics=Y&rsstitle=Annandale+-+Event+Listing&rssid=11', 
      success: this.loaded     
     }); 
    }, 

    loaded: function(data){ 
     // Get access to the events id in the DOM 
     var events = document.getElementById('events'); 

     // Get item from the RSS document 
     var items = data.getElementsByTagName('item'); 
    alert('test'); 



    } 

} 



ns.init(); 

});

+0

alerte (items [0] .title.childNodes [0] .nodeValue); devient indéfini aussi. – steve

+0

une autre question - var events = document.getElementById ('events'); Ai-je besoin de spécifier var? c'est juste une variable locale. – steve

Répondre

0

La meilleure façon de problèmes de débogage comme celui-ci est de charger la page dans Firefox après l'installation du plug-in FireBug. Dans ce plugin, vous pouvez définir un point d'arrêt, puis inspecter la variable des éléments et voir les propriétés et la structure de l'objet. Alternativement, si vous y êtes ouvert, vous pouvez charger le XML dans un objet jQuery puis utiliser ces fonctions pour naviguer dans le DOM.

+0

La seule façon que vous pouvez obtenir un document XML avec jQuery est en le téléchargeant via Ajax. –

0

Non, à moins que vous utilisez E4X vous ne pouvez pas utiliser la notation point pour naviguer dans un DOM XML en JavaScript. Vous devrez utiliser le DOM standard: getElementsByTagName("title"), childNodes etc.

E4X vous permet de naviguer dans XML comme s'il s'agissait d'un arbre d'objets JavaScript, mais dans les navigateurs principaux, il est uniquement pris en charge dans Firefox.

+0

Génial. Je pense que c'est là que j'étais confus. Je vais m'en tenir aux méthodes dom. – steve