Webサービス呼び出しから戻ってくるXMLから値を抽出しようとしています。ただし、 "xmlns"属性を含めると、クエリが期待どおりに機能しなくなります。予想通りOracle 11gを使用してSQLを使用してXMLから値を抽出
このクエリは動作しますが、私は戻って「Y」を得る:ここで
SELECT EXTRACTVALUE(XMLType('<?xml version="1.0" encoding="utf-8"?><string><SAMP_OVERALL>Y</SAMP_OVERALL></string>')
,
'/string/SAMP_OVERALL') myval
from dual;
は同じクエリですが、ルートタグ「string」はのxmlns属性が含まれています。これが実際のXMLがどのように戻ってくるかです。私はそれが私に困っている属性であることを絞り込んだ。それはnullを返します:
SELECT EXTRACTVALUE(XMLType('<?xml version="1.0" encoding="utf-8"?><string xmlns="someweburl"><SAMP_OVERALL>Y</SAMP_OVERALL></string>')
,
'/string/SAMP_OVERALL') myval
from dual;
はなぜのxmlnsを含めることはSAMP_OVERALLタグの値を返すことはない、これを原因と属性のでしょうか?
この時点で、私は必要な値を引き出すための構文を理解できません。
ありがとうございます!
は素晴らしい仕事を!リンクもありがとうございます。 – mjf200