2010-07-08 20 views
7

In meinem Oracle bekommen db ich Datensätze wie diese:Wie erstes Element von 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> 

Ich brauche einen Wert aus dem ersten <Name> Tag zu extrahieren. Wenn ich versuche:

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

ich:

1418688.pdf1418688.xml

Warum das so ist und wie kann ich nur 1418688.pdf bekommen?

Oracle Version:

Oracle Database 10g Enterprise Edition 10.2.0.4.0 Ausgabe - 64bi

+0

Nur wundernd, was erhalten Sie von Xpath // Datei [1]/Name/text()? Ich denke, dass beide Name-Elemente # 1 sind, weil sie in ihren Knotenpunkten jeweils erste sind. – REW

Antwort

12

Ich denke, dass beiden Namen Elemente # 1 in diesem Dokument sind, weil sie in ihren Knoten sie sind jeweils erste. Versuchen Sie //File[1]/Name/text()

+0

Wissen Sie, wie Sie das letzte Element erhalten? danke – sambomartin

+0

// Datei [last()]/Name/text() sollte in diesem Fall funktionieren. – REW