2010-07-08 2 views
7

В моей БД Oracle У меня есть записи, как это:Как получить первый элемент, XPath в 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> 

мне нужно извлечь значение из первого <Name> тега. Если я пытаюсь:

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

я получаю:

1418688.pdf1418688.xml

Почему так и как я могу получить только 1418688.pdf?

Oracle Версия:

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

+0

Просто интересно, что вы получаете от xpath // Файл [1]/Name/text()? Я думаю, что оба элемента Name - # 1, потому что в их узлах они первыми. – REW

ответ

12

Я думаю, что оба элемента Имя являются # 1 в этом док, потому что в их узлах они первыми. Попробуйте //File[1]/Name/text()

+0

Вы знаете, как получить последний элемент? спасибо – sambomartin

+0

// Файл [last()]/Name/text() должен работать в этом случае. – REW

Смежные вопросы