J'essaie de supprimer les guillemets des nœuds de texte. Le code suivant fonctionne:Bonne façon de remplacer le texte dans l'élément E4X
var cars = <cars>
<buick>
<color>
"Blue"
</color>
</buick>
<chevy>
<color>
"Red"
</color>
</chevy>
</cars>;
for each (elem in cars)
for each (item in elem.*)
elem[item.localName()] = item.text().toString().replace(/"/g,'');
Cependant, je ne me sens pas à l'aise sur le élém [item.localName()] = construction. semblent
item = item.text().toString().replace(/"/g,'');
Malheureusement, ce code ne pas faire ce qu'il est censé faire: En effet, je l'ai déjà une pointe au point du texte et il serait beaucoup plus logique d'utiliser quelque chose comme. Des idées pourquoi? Quelle est la bonne façon de le faire?
Je suis en cours d'exécution dans le code YQL (Open Tableau de données élément). Votre code fonctionne mais en fait je me demandais s'il y avait un moyen de changer le texte dans un nœud sans avoir à se référer au parent (c'est ce que je fais maintenant, elem [item.localName()]) –
mtelis
@mtelis Hmm .. 'txt.nodeValue = ...' devrait fonctionner, mais ce n'est pas le cas. Dans tous les cas, pourquoi voulez-vous éviter de faire référence à l'élément parent? – Zecc
Il est à noter qu'il peut y avoir plusieurs nœuds de texte différents sous le même élément, et vous devriez probablement appeler 'normalize()' sur chacun d'eux juste pour être du bon côté. Exemple: J'ai juste ajouté un commentaire au milieu du texte et mon code s'est cassé, donc c'est encore moins robuste que votre code original. – Zecc