Proper way to replace text in E4X element
I'm try开发者_开发问答ing 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?
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,'') );
}
Try this, please:
for each (var color in cars.*.*)
color.* = color.toString().replace(/"/g,'');
精彩评论