2010-07-08 9 views
7

Nel mio Oracle db ho dischi come questo:Come arrivare primo elemento da XPath in Oracle

<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> 

ho bisogno di estrarre un valore dalla prima <Name> tag. Se provo:

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

ottengo:

1418688.pdf1418688.xml

Perché è questo e come posso ottenere solo 1418688.pdf?

Oracle Versione:

Oracle Database 10g Enterprise Edition Edizione 10.2.0.4.0 - 64bi

+0

Mi chiedo solo, cosa ottieni da xpath // File [1]/Name/text()? Penso che entrambi gli elementi Name siano # 1, perché nei loro nodi sono ciascuno i primi. – REW

risposta

12

Penso che entrambi gli elementi sono Nome # 1 in questo documento, perché nelle loro nodi loro sono i primi Prova //File[1]/Name/text()

+0

sai come ottenere l'ultimo elemento? grazie – sambomartin

+0

// Il file [last()]/Name/text() dovrebbe funzionare in questo caso. – REW