これは愚かな XPATH の質問です。コードは PL/SQL ですが、問題にはなりません。
lx_a := XMLTYPE('<rfs-graph><graphml>foo</graphml><rfs-graph>');
lx_b := lx_a.extract('/rfs-graph/graphml[1]');
dbms_output.put_line(lx_b.getStringVal());
実行すると、結果は
<graphml>foo</graphml>
しかし、このコードを実行すると:
lx_a := XMLTYPE('<rfs-graph><graphml xmlns="abc">foo</graphml></rfs-graph>');
lx_b := lx_a.extract('/rfs-graph/graphml[1]');
dbms_output.put_line(lx_b.getStringVal());
lx_b が null であるため失敗します。
唯一の違いは、graphml 要素に属性があることです。
属性があるかどうかに関係なく、graphml 要素を選択するにはどうすればよいですか?