e4xネタです。 Rhino 1.7R2 で名前空間付きの属性を変更しようとしてハマったので調べてみました。
ブログでいっぺんに書くにはダラダラしたコードなので分断して書きます。 テストコード全体は下の方に載せます。 まずはコードの先頭。
var x = <root xmlns:xlink="http://www.w3.org/1999/xlink" dummy="d"> <elem id='i0' test_attr='t'/> <elem id='i1' test_attr=''/> <elem id='i2'/> <elem id='i3' xlink:href="#i0"/> <elem id='i4' xlink:href="#i1"/> <elem id='i5' xlink:href="#i2"><child_elem/></elem> </root>; var xlink = new Namespace('http://www.w3.org/1999/xlink'); var i, elem, elems, attr, attrs, str;