0
XML을 사용하여 XML을 구문 분석하는 방법과 같습니다오라클 - XMLTABLE
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<BlockUpload xmlns="http://mftsolutions.com/">
<data><Block xmlns="http://mftsolutions.com/BlockUploader/Block"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://mftsolutions.com/BlockUploader/Block BlockSchema.xsd">
<Header>
<Identifier>ID10567</Identifier>
</Header>
</Block></data>
</BlockUpload>
</soap12:Body>
</soap12:Envelope>
내가 요소 식별자 (ID10567)의 값을 얻을 싶어요.
나는 이와 같은 쿼리를 시도했지만 아무런 결과가 없습니다. 아마도 xmlNamespaces 선언에 뭔가 빠졌을 것입니다 :
select h_id
from test_xml,
xmltable(xmlNamespaces (default 'http://mftsolutions.com/BlockUploader/Block'
,'http://mftsolutions.com/' as "mft"
,'http://www.w3.org/2001/XMLSchema-instance' as "xsi"
,'http://www.w3.org/2001/XMLSchema' as "xsd"
,'http://www.w3.org/2003/05/soap-envelope' as "soap12"),
'//soap12:Envelope/soap12:Body/BlockUpload/data/Block/Header'
PASSING XMLTYPE(xml)
COLUMNS
h_id VARCHAR2(1000) PATH 'Identifier')
내가 뭘 놓쳤을까요? 이 쿼리에 대한
샘플 테이블 :
create table test_xml (xml clob);
insert into test_xml values ('<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<BlockUpload xmlns="http://mftsolutions.com/">
<data><Block xmlns="http://mftsolutions.com/BlockUploader/Block"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://mftsolutions.com/BlockUploader/Block BlockSchema.xsd">
<Header>
<Identifier>ID10567</Identifier>
</Header>
</Block></data>
</BlockUpload>
</soap12:Body>
</soap12:Envelope>');
당신을 감사 일했다 – user3770485