Convertir un objet DOM en variable texte

Résolu
Lyricoding Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Lyricoding Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous,

J'aimerai pouvoir convertir un objet DOM, récupéré depuis le document, et le convertir en une variable texte pour pouvoir y effectuer un .replace()
A noter que le .replace remplacerais les balises html par des balises BBcode.

En cherchant sur le net, on trouve beaucoup de sujet concernant "convertir un texte en DOM", mais pas l'inverse...

Je pourrais effectivement récupérer le contenu et le type de chaque noeud par une boucle, mais comme c'est un objet qui peut souvent changer, il serait difficile de prévoir tous les cas, et je trouve plus simple de remplacer les <b> par [b] par exemple... (l'objet ne possède que des balises d'écriture du type <b>, <i>, <sub> etc... Il n'y aura donc pas d'image ou de tableaux)

Une idée pour m'aider ?
Merci.
A voir également:

3 réponses

Lyricoding Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   2
 
Désolé pour le double post, mais comme je vient de trouver une solution, il vaut mieux la mettre a part :

Dans un document XML, on peut utiliser ce code :
var texte = (new XMLSerializer()).serializeToString(ObjetDOM);

Très pratique, cependant, il faudrait vérifier la compatibilité avec les différents navigateurs (ne marche peut-être pas sur IE)

Sinon, une autre solution semble exister, mais qui m'a rendu "undefined" chez moi :
var String = ObjetDOM.innerHTML;

Peut-être je n'arrive pas a l'utiliser correctement :/

Sources : http://www.techtamasha.com/convert-dom-to-string/29

Voila.
[ Lyric ]
1
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
javascript va te faire cela côté navigateur, ne serait-il pas plus judicieux de le faire par du php puis enregistrer le fichier ainsi modifié ?
0
Lyricoding Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   2
 
Oui, si je le pouvait, ce serais plus intelligent. Malheureusement, je ne peut rien faire cote serveur, mon script est en fait un .user.js, un script Greasemonkey si on veut.
Ca permet de modifier l'affichage d'une page sans toucher au serveur par exemple.
Mon script a pour fonction de récupérer des informations sur la page pour creer un BBCode. J'ai récupéré pratiquement toutes les infos que je veut, sauf une cellule d'un tableau, qui peut contenir :
- Soit un texte : "Vide" (on récupère donc par cellule.firstChild.data )
- Soit une formule chimique, qui peut prendre plusieurs formes, comme C6O6N6H6, ou HCNO, ou encore C5N7, voir CN. Les chiffres sont mit entre des balises <sub>.
Je désire récupérer la formule, et remplacer les <sub> par [sub]. Mais je n'ai aucune idée de comment procéder.
Faut-il que je récupère la formule avec des tas de conditions qui vérifient si il y a un chiffre, combien il y a d'éléments, etc ? Ou bien il existe un moyen de convertir l'objet "cellule" en une variable texte, qui contiendrait du genre "C<sub>6</sub>OH<sub>2</sub>" et avec laquelle je pourrait faire un .replace('<sub>','[sub]') ?
0