2010-07-08 52 views
7

拿到第一個元素在我的Oracle數據庫我有這樣一個記錄:如何與XPath在甲骨文

<ROOT> 
    <Event> 
    <Type>sldkfvjhkljh</Type> 
    <ID>591252</ID> 
    </Event> 
    <Data> 
    <File> 
     <Name>1418688.pdf</Name> 
     <URL>/591252/1418688.pdf</URL> 
    </File> 
    <File> 
     <Name>1418688.xml</Name> 
     <URL>/591252/1418688.xml</URL> 
    </File> 
    </Data> 
</ROOT> 

我需要從第一<Name>標籤中提取的值。如果我嘗試:

Select xmltype(xml_data).extract('//Name[1]/text()').getStringVal() from MY_TABLE 

我得到:

1418688.pdf1418688.xml

這是爲什麼,我怎麼能得到公正1418688.pdf

Oracle版本:

Oracle數據庫10g企業版 發佈10.2.0.4.0 - 64bi

+0

只是想知道,你從xpath // File [1]/Name/text()得到了什麼?我認爲這兩個名稱元素都是#1,因爲在它們的節點中它們都是第一個。 – REW 2010-07-08 05:24:53

回答

12

我認爲無論是名稱元素,這個文檔是#1,因爲他們的節點他們每個都是第一個。嘗試//File[1]/Name/text()

+0

你知道如何獲得最後一個元素嗎?謝謝 – sambomartin 2015-01-06 16:43:35

+0

// File [last()]/Name/text()應該在這種情況下工作。 – REW 2015-01-15 20:20:20