閉じる

xmlSetNsProp / xmlGetNsProp @ libxml2

んーむ、デフォルトネームスペースの扱いがおかしい気がする。
デフォルトネームスペースが指定されている XMLファイルを読んだ時、ネームスペースが明示されていないプロパティのネームスペース(ns)が NULLになっているのでおかしいと思ったのが始まり。
そこへネームスペースを指定したプロパティを書き込むと、ネームスペース無しのプロパティとネームスペース有りのプロパティが混在してしまう。
ファイルへ書き出すと、デフォルトネームスペースと同じネームスペースが指定されているプロパティのネームスペース指定は消えるので、結果としてネームスペース無しで同名のプロパティが出来てしまう。

現状は泥臭い方法で回避しているけど、もっといい手があるんだろうか?

2012/11/21追記

XPath周りでも同じなんだな。
デフォルトのネームスペースを指定した上で同じネームスペースを指定してプロパティを検索すると見つからない。

こちらはデフォルトと hrefの同じネームスペースを定義してプロパティに明示してやることで逃げた。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)