Convertir un objet DOM en variable texte

Résolu/Fermé
Lyricoding Messages postés 13 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 1 novembre 2013 - 9 mars 2013 à 14:31
Lyricoding Messages postés 13 Date d'inscription samedi 9 mars 2013 Statut Membre Dernière intervention 1 novembre 2013 - 10 mars 2013 à 09:39
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 samedi 9 mars 2013 Statut Membre Dernière intervention 1 novembre 2013 2
10 mars 2013 à 09:39
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 mars 2013 à 22:18
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 samedi 9 mars 2013 Statut Membre Dernière intervention 1 novembre 2013 2
10 mars 2013 à 09:16
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