2012-10-18 2 views
3

가 여기에 XML 파일에서 노드 이름을 얻는 방법 : XPATH를 통해 태그 이름 "C"를 얻는 방법XPATH (10g)와 오라클 SQL 추출물()

<ROOT> 
<A> 
    <B>2</B> 
    <C>3</C> 
    <D>4</D> 
</A> 
</ROOT> 

. 함수 이름()은 추출에서 여기서 작동하지 않습니다.

 
ORA-31011: XML parsing failed 
ORA-19202: Error occurred in XML processing 
LPX-00601: Invalid token 

gXmlDOM는 XML 문자열이 어떻게 SQL에서이 작업을 수행하기 위해, 위입니다 :

그것은 오류를보고?

select XMLType(gXmlDOM).extract(p_xmlPath).getStringVal() from dual; 
+0

무엇을 찾고 있는지 될 수 있을까요? –

+0

그것은 "/ ROOT/A"와 같은 xpath 문자열입니다. – Frank

+0

왜 C가 아닌 B 또는 D입니까? – podiluska

답변

7

이 말은`p_xmlPath` 칼럼의 내용을 무엇을 위해 ...

Select xmltype('<ROOT><A><B>2</B><C>3</C><D>4</D></A></ROOT>') 
     .extract('ROOT/A/*[2]') 
     .getrootelement() 
    From dual;