replaceによる置換がうまくいかない
Javascriptを使用して、一回で全てのタグの中身を、それぞれで置き換えるような処理を考えています。
例えばですが、
<data>
<item list="りんご,みかん,なし">果物</item>
<item list="あじ,さんま,まぐろ">魚類</item>
<item list="とり,ぶた,うし">肉類</item>
</data>
を下のように置換することは可能でしょうか?
<data>
<item list1="りんご" list2="みかん" list3="なし">果物</item>
<item list1="あじ" list2="さんま" list3="まぐろ">魚類</item>
<item list1="とり" list2="ぶた" list3="うし">肉類</item>
</data>
if, match, replaceを使って、strに元の文字列が入っているとして、
if (str.match(/<item list=\"([^<]+)\">[^<]+<\/item>/)) {
food = RegExp.$1.split(",");
str = str.replace(/<item list=\"[^<]+\">[^<]+<\/item>/, "<item list1=" + food[0] + …);
}
としてみたのですが、当然ながら全てのitemタグの中身がりんご、みかん、なしに置換されてしまいます。
一列ずつ置換する方法はありますか?一列といっても元の文字列は改行がない場合を考えています。
よろしくご教示ください。お願いいたします。
お礼
最初 「^list.*Add 」 でやったらエラーが出たんですが、 ^を取っ払って、 「 list.*Add 」で、思ったようにできました。 ありがとうございます。