text() in XQuery

Thursday, 22 January 2015 · 2 messages
CG
Christian Grünin reply to Ana Victória Ladeira, 22 Jan 2015, 20:2422 Jan 2015 19:29 #

Hi Ana,

Quoted text · Ana Victória Ladeira · 1 line
> Sorry for bothering and thank you for the attention.

You are welcome. Your need to declare the default namespace in order to get results:

declare namespace v3 ="http://www.loc.gov/mods/v3";
for $doc in collection('ExemploBibtex')
    where matches(document-uri($doc), 'quantuminformation.xml')
return $doc/v3:modsCollection/v3:mods/v3:titleInfo/v3:title/text()

You can also use wildcards, and you can specify the filename in the argument of the collection() function:

for $doc in collection('ExemploBibtex/quantuminformation.xml')
return $doc/*:modsCollection/*:mods/*:titleInfo/*:title/text()

Hope this helps, Christian

AL
Ana Victória Ladeira22 Jan 2015 20:24 #

Hi!

I'm relatively new to BaseX/XQuery and currently using a XML with the following format:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<modsCollection xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-0.xsd
">
<mods ID="ISI:000330282600027" version="3.0">
<titleInfo>
<title>Minimum Relative Entropy for Quantum Estimation: Feasibility and
General
 Solution</title>
</titleInfo>

The file is called "quantuminformation.xml", inside the DB "ExemploBibtex"

I'm trying to extract the titles of all articles in the document, using the following query:

for $doc in collection('ExemploBibtex')
    where matches(document-uri($doc), 'quantuminformation.xml')
return $doc/modsCollection/mods/titleInfo/title/text()

It doesn't matter if I use the text() or fn:string, the result is always empty.

What am I doing wrong?

Sorry for bothering and thank you for the attention.


⚡Generated with XQuery