[ruby] libxml-rubyの名前空間の扱いの件 - 続報とパッチ
エントリを書いて、id:cho45さんからトラックバックをいただいて、いろいろコメント欄でやり取りをした結果、わかったことは
ということ。
というわけで、パッチを書いた。
Index: ext/xml/ruby_xml_xpath.c =================================================================== --- ext/xml/ruby_xml_xpath.c (revision 218) +++ ext/xml/ruby_xml_xpath.c (working copy) @@ -76,9 +76,9 @@ } else { // tuples of prefix/uri - if (RARRAY(RARRAY(nslist)->ptr[i])->len == 2) { - rprefix = RARRAY(RARRAY(nslist)->ptr[i])->ptr[0]; - ruri = RARRAY(RARRAY(nslist)->ptr[i])->ptr[1]; + if (RARRAY(nslist)->len == 2) { + rprefix = RARRAY(nslist)->ptr[0]; + ruri = RARRAY(nslist)->ptr[1]; ruby_xml_xpath_context_register_namespace(xxpc, rprefix, ruri); } else { rb_raise(rb_eArgError, "nested array must be an array of strings, prefix and href/uri");
libxml-devのMLに投げたけど、取り込んでもらえるかしら。ついでにハッシュでも渡せると素敵かしら。
追記:acceptしてもらえました。次期バージョンでは修正されます。