dポイントプレゼントキャンペーン実施中!

初歩的なことかもしれませんが、なんだかGoogleなどで検索してもなかなかひっかかってくれません。
そこで質問です。。

1つの要素オブジェクト(Element)があって、その下にDOMツリーがたくさんあるとします。
そしてその下のDOMツリーは保持したまま、親の要素オブジェクトの要素名を変更することは可能でしょうか?
例えば
<a><b><c></c></b></a>

<a2><b><c></c></b></a2>
とするような感じです。

NodeクラスのcloneNodeを使用しても、要素名は変わらないので、ダメですよね。

もしかすると、任意の名前の空要素を1つ用意しておいて、その後子ノードをばんばん追加する処理を書かなくてはダメなのでしょうか。

以上、よろしくお願いします。

A 回答 (1件)

処理系によるけれど 通常は


複製するときに新たな名前にし、古い物を削除する、
というファイル上書き保存のような仕掛けで書き換える事になると思う。

element名を直接書き換えができるかどうかは処理系によると思う。
    • good
    • 0
この回答へのお礼

ファイル上書き保存のような仕掛けというのは、一度ファイルに書き出したり、文字列に直列化するなどした後に、<a>要素を見つけ出して<a2>要素とするような試みでしょうか?
このような解釈で合っているのかどうかわかりませんが、これだと速度的にかなり遅くなると思います。

それとすみませんが、新しい要素名で複製するクラスとメソッドを教えて頂けないでしょうか。
今のところDOMツリーごと複製するメソッドはNodeクラスのcloneNodeメソッドくらいしか思いつきません。(これって要素名変更しつつ複製するといったことはできないんですよね?)

例で示した<a>という要素の下に、CDATAや幾つもの要素があるので、1つずつループで処理する以外に何か手段はないものでしょうか・・。

お礼日時:2007/07/28 22:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!