2012-10-18 33 views
3

下面是一個XML文件中獲取節點名稱:如何在Oracle SQL提取物()使用XPath(10G)

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

如何通過XPATH得到標籤名 「C」。函數名稱()在提取中不起作用。

它報告的錯誤:

 
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

有什麼'p_xmlPath'列的內容? –

+0

這是xpath字符串,如「/ ROOT/A」 – Frank

+0

爲什麼是C而不是B或D? – podiluska

回答

7

這可能是你在找什麼...

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