2017-06-26 1 views
0

J'utilise cherrio pour analyser un fichier xml. J'ai chargé le fichier et j'ai aussi défini xmlMode: true.NodeJs cherrio bibliothèque parse xml

var $ = cheerio.load(rawAssertion, { 
    xmlMode: true 
}); 

Mon xml est quelque chose comme ci-dessous:

<myNamespace:myTagData> 
    <myNamespace:myTag>data inside this node</myNamespace:myTag> 
</myNamespace:myTagData> 

Mon problème est que le nœud spécifique que je cherche a un espace de noms et il semble que faire une simple recherche ne trouve pas mon nœud. J'ai essayé ce qui suit:

var tagInfo= $('myTag'); 
console.log(tagInfo.text()); 

Lors de l'impression de la valeur de texte, le résultat est une chaîne vide. Comme je l'ai compris, cela peut suggérer que l'élément était maintenant trouvé dans le xml.

J'ai essayé d'ajouter l'espace nams lors de la recherche du noeud mais j'ai reçu une erreur: SyntaxError: pseudo-classe non appariée.

Notez que je peux accéder au texte des noeuds xml qui n'ont pas d'espace de noms.

Comment rechercher un nœud XML ayant un espace de noms?

Répondre

0

Cela fonctionne en ajoutant l'espace de noms. La seule chose à garder à l'esprit est que vous devez échapper aux deux-points:

var tagInfo= $('myNamespace\\:myTag'); 
console.log(tagInfo.text());