2010-07-08 16 views
7

En mi base de datos Oracle Tengo discos como éste:Como llegar primer elemento de XPath en 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> 

que necesito para extraer un valor de la primera <Name> etiqueta. Si trato:

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

me sale:

1418688.pdf1418688.xml

Por qué es esto y cómo puedo obtener sólo 1418688.pdf?

Oracle Versión:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

+0

¿Qué se obtiene de xpath // Archivo [1]/Name/text()? Creo que ambos elementos de Nombre son # 1, porque en sus nodos son los primeros. – REW

Respuesta

12

Creo que ambos elementos de nombre son # 1 en este documento, ya que en sus nodos ellos son los primeros. Pruebe //File[1]/Name/text()

+0

¿sabes cómo obtener el último elemento? gracias – sambomartin

+0

// El archivo [last()]/Name/text() debería funcionar en ese caso. – REW