问题
I'm trying to remove double quotes from text nodes. The following code works:
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,'');
However, I don't feel comfortable about the elem[item.localName()]= construction. Indeed, I already have a pointed to text item and it would be much more logical to use something like:
item = item.text().toString().replace(/"/g,'');
Unfortunately, this code doesn't seem to do what it's supposed to do. Any ideas why? What is the right way to do it?
回答1:
Where are you running this code? Because it is working fine for me in Firefox.
And so is this (try it and let me know if it worked for you):
for each (txt in cars..*.text()){
txt.parent().setChildren( txt.toString().replace(/"/g,'') );
}
回答2:
Try this, please:
for each (var color in cars.*.*)
color.* = color.toString().replace(/"/g,'');
来源:https://stackoverflow.com/questions/4280911/proper-way-to-replace-text-in-e4x-element