2017-05-15 2 views
1

J'utilise l'analyseur xmldom de la bibliothèque npm, il est basé sur le modèle d'objet DOMNode. Avoir le code suivant:Obtention du contenu d'un élément sous forme de chaîne avec HTML non échappé

var xml = "<p>Test</p><toFetch id="1">test\n\n<p>aaa</p>test\n</toFetch>"; 
var parser = new dom.DOMParser().parseFromString(xml, "text/xml"); 

Je veux obtenir le contenu de la balise toFetch, comme une chaîne avec tous les tags unescaped HTML à l'intérieur, et sans l'étiquette toFetch lui-même.

Ce que j'est:

var elements = parser.getElementsByTagName("toFetch"); 
elements.forEach(element => { 
    console.log(element.toString()); 
}); 

Il fonctionne, mais il me donne la chaîne avec toFetch étiquette environnante. Comment puis-je obtenir uniquement le contenu?

+0

xml.split ("<à Fetch") [1] .split ("") [0] –

Répondre

0

Votre chaîne contient une faute de frappe. Le 1 devrait être entre guillemets simples, pas en double.

Ensuite, le changement: console.log(element.toString());

Pour: console.log(element.textContent);

+0

Il me donne seulement le premier enfant , sans balise interne – user99999

+0

@ user99999 Réponse mise à jour. –

+0

Essayé cela aussi, il supprime toutes les balises HTML, je ne veux pas ça. – user99999