आप कर सकते हैं इसे extractvalue
के साथ करें :
select extractvalue(
xmltype(response_string),
'/soap:Envelope/soap:Body/getAddressForIpResponse/p-address',
'xmlns="urn:USR1" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"')
from dual;
लेकिन extractvalue
क्या बहिष्कृत
है; इसलिए आपको XMLQuery
का इस्तेमाल करना चाहिए :
select XMLQuery(
'declare default element namespace "urn:USR1";
declare namespace soap="http://schemas.xmlsoap.org/soap/envelope/";
/soap:Envelope/soap:Body/getAddressForIpResponse/p-address/text()'
passing xmltype(response_string)
returning content).getStringval()
from dual;
किसी भी तरह से आपको डिफ़ॉल्ट और soap
. की आपूर्ति करने की आवश्यकता है नाम स्थान।
यदि आप डेटा के एकाधिक बिट निकाल रहे हैं तो आप XMLTable का भी उपयोग कर सकते हैं; यहाँ यह बहुत कुछ नहीं जोड़ता है लेकिन यह कुछ इस तरह होगा:
select ip_address
from XMLTable (
XMLNamespaces (
default 'urn:USR1',
'http://schemas.xmlsoap.org/soap/envelope/' as "soap"
),
'/soap:Envelope/soap:Body/getAddressForIpResponse/p-address'
passing xmltype(response_string)
columns ip_address varchar2(15) path '.');