可以使用EXTRACTVALUE
函數來獲取這個值。此功能需要兩個或三個參數:
- 包含XML文檔的XMLTYPE對象。
- 一個XPath表達式,用於標識XML中我們需要的值的位置。
- (可選)將名稱空間前綴綁定到URI的額外字符串。
在下面的查詢中,我將上面介紹的XML作爲字符串,並從中創建了XMLTYPE對象。然後我用EXTRACTVALUE
讓你請求的值:
SELECT EXTRACTVALUE(XMLTYPE(
'<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<SOAProxyResponse xmlns="http://tempuri.org/">
<SOAProxyResult>
There is 23142 Files!
</SOAProxyResult>
</SOAProxyResponse>
</s:Body>
</s:Envelope>'), '//SOAProxyResult', 'xmlns="http://tempuri.org/"') AS result
FROM dual;
XPath表達式//SOAProxyResult
只是返回文檔中的所有元素SOAProxyResult
。 EXTRACTVALUE
的第三個參數將默認命名空間綁定到http://tempuri.org/
。這是必要的,因爲XML文檔中的SOAProxyResult
元素位於此名稱空間內。
如果我運行此查詢,我得到下面的輸出:
RESULT
--------------------------------------------------------------------------------
There is 23142 Files!
從這裏,它應該有希望是一個微不足道的修改,把這個查詢的結果到一個變量。
謝謝,我會盡力挖掘它;-) – 2011-02-16 13:51:11
我找不出一個簡單的方法來讀取這些值! – 2011-02-16 14:57:27