2014-07-23 4 views
2

J'ai un peu de mal à obtenir le module htmlparser2 (en utilisant node.js) pour sortir une chaîne xml. Fondamentalement, je suis dans l'analyse comme ceci:htmlparser2 convertir l'objet xml en chaîne

var htmlparser=require('htmlparser2'); 
function(xmlString,cb){ 
    var handler=new htmlparser.DomHandler(cb); 
    var parser = new htmlparser.Parser(handler); 
    parser.write(xmlString); 
    parser.done(); 
} 

Puis-je obtenir un objet appelé « dom », que je fais un travail sur. Une fois ce travail terminé, je veux l'exporter dans une chaîne XML. Je sais que htmlparser.DomUtils.getOuterHTML(dom) fonctionne pour les objets HTML, mais ne fonctionne pas pour XML (du moins pas par défaut). Je reviens <undefined></undefined> quand j'appelle htmlparser.DomUtils.getOuterHTML(dom) sur un dom XML.

Merci d'avance pour toute aide que vous êtes en mesure d'offrir! -Dylan

+0

Fixé. Fondamentalement, vous devez utiliser une deuxième option dans getOuterHTML ... htmlparser.DomUtils.getOuterHTML (dom, {xmlMode: true}) Si cela ne fonctionne pas, essayez d'appeler les éléments internes dans le tableau comme: htmlparser. DomUtils.getOuterHTML (dom [0], {xmlMode: true}) Vous devrez envelopper une boucle pour l'entourer pour obtenir le document entier, mais cela fonctionne pour moi! –

Répondre

2

Fixé. Fondamentalement, vous devez utiliser une seconde option dans getOuterHTML ...

htmlparser.DomUtils.getOuterHTML(dom,{xmlMode:true}) 

Si cela ne fonctionne pas, essayez d'appeler les elems internes dans le tableau comme:

htmlparser.DomUtils.getOuterHTML(dom[0],{xmlMode:true}) 

Vous devrez Envelopper une boucle autour pour obtenir le document entier, mais cela fonctionne pour moi!

+0

Merci pour le partage! 'Domutils' n'a toujours pas de documentation, tout est utile. – revelt