eXide не показывает результатов на экране

Я пишу этот запрос в eXist-db (eXide):

doc("/db/libros/prueba.xhtml")/html/body/p/a/@href

Найти два результата: Найдено 2 за 0,003 с.

Но на экране ничего не отображается

Входной документ:

<html>
<head>
    <title> titulo </title>
</head>
<body>
<p class="clase1"> esto es un parrafo <a href="www.wikipedia.com"> wikipedia </a></p>
<p> otro parrafo <a href="www.youtube.com">youtube</a></p>
</body>
</html>

система

kernel : Linux 3.5.0-27-generic (x86_64)

Distribution Linux Mint 14 Nadia

eXist Version:  2.0
eXist Build:    20130207

person wester1991    schedule 22.05.2013    source источник


Ответы (1)


Я думаю, вам нужно поместить data() вокруг. Взглянуть:

data(doc("file:/C:/Users/vgv/Desktop/Testing/Untitled1.xml")/html/body/p/a/@href)

выход:

www.wikipedia.com www.youtube.com
person Navin Rawat    schedule 22.05.2013
comment
Навин прав. Ваш запрос возвращает узлы атрибутов, но вам нужно строковое значение этих узлов. Функция data(), предложенная Навином, будет возвращать типизированное значение узлов атрибутов, но функция string() может быть более специфичной для получения строкового значения узлов: doc("file:/C:/Users/vgv/Desktop/Testing/Untitled1.xml")/html/body/p/a/@href/string() На самом деле это проблема XQuery, а не специфичная для eXide. - person Joe Wicentowski; 23.05.2013