PostgreSQL 9.1 では、次の 2 つのクエリをエラーなしで実行でき、正しい結果が得られます。
SELECT xpath('/a', '<a s:dd="11"><c>test</c></a>')
SELECT xpath('/a', '<a s:dd="11"><c>test</c></a>',ARRAY[ARRAY['s', 'http://example.com']])
PostgreSQL 9.2 では、同じクエリで次のエラーがスローされます。
ERROR: could not parse XML document
DETAIL: line 1: Namespace prefix s for dd on a is not defined
このクエリのみが正常に機能します。
SELECT xpath('/a', '<a xmlns:s="ddd" s:dd="11"><c>test</c></a>')
XMLコードを変更せずに、XMLファイルを解析するにはどうすればよいですか?
前のクエリから受け取った xml 要素の xpath クエリを作成したいときに問題が発生します。
xml ドキュメントの例:
<some xmlns:my="somens">
<a>
<b my:param="11" />
</a>
</some>
そして、私はこのようなことをしたい:
elem = xpath('/a',doc);
elem2= xpath('//b',elem[0]);
未知の接頭辞 my のため、2 行目でエラーが発生します。何か案は?