ノードがブランク (空白のみを含むテキスト要素) と空要素 (<tag/> や <tag></tag>) の場合にはハッシュにキー・値を登録せず、無視する仕様にします。 maskat.php の L51 に以下を追加するパッチを添付しました。
51: /* 空白のみのテキスト要素 (ブランクノード) と空要素を無視 */ 52: if ($child->is_blank_node() || !$child->has_child_nodes()) { 53: continue; 54: }
この修正を 2.1.0 版のサンプルに同梱してリリース予定です。別案としてハッシュの値に空文字を登録するという方法もあります。maskat.php はあくまでサンプルなので、ご自由に改変していただいて構いません。
サンプルアプリケーション PHP 版 2.1.0 にこの修正を含めました。ご報告ありがとうございました。 http://sourceforge.jp/forum/forum.php?forum_id=18271
maskat2.0.0にて
maskat-sample-phpなどに付属しているmaskat.phpですが parse_request_xml()のバグで、空要素のtextが送られると Array扱いになってしまいます。
原因は52行目 if (count($grand_children) == 1 and $grand_children0->tagname == "#text") {
こうではなく、 if (count($grand_children) == 1 (and $grand_children0->tagname == "#text" or $grand_children0->is_blank_node)) {
とするべきです。 (子要素が1つで、テキストノードであるか、空要素である)