2010-07-08 4 views
7

Dans mon Oracle db j'ai des dossiers comme celui-ci:Comment obtenir premier élément par XPath dans 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> 

j'ai besoin d'extraire une valeur de la première balise <Name>. Si je tente:

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

Je reçois:

1418688.pdf1418688.xml

Pourquoi est-ce et comment puis-je obtenir juste 1418688.pdf?

Oracle Version:

Oracle Database 10g Enterprise Edition La version 10.2.0.4.0 - 64bi

+0

Vous vous demandez simplement ce que vous obtenez de xpath // File [1]/Name/text()? Je pense que les deux éléments Nom sont # 1, parce que dans leurs nœuds, ils sont chacun en premier. – REW

Répondre

12

Je pense que les deux éléments de nom sont n ° 1 dans ce document, parce que dans leurs noeuds ils sont chacun d'abord. Essayez //File[1]/Name/text()

+0

savez-vous comment obtenir le dernier élément? merci – sambomartin

+0

// Fichier [last()]/Name/text() devrait fonctionner dans ce cas. – REW

Questions connexes