Proper way to replace text in E4X element

做~自己de王妃 提交于 2019-12-08 02:41:10

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!