[xquery-talk] trying to retrieve element value

Mary McRae mmcrae at iqsolutions.com
Wed Jan 6 10:28:35 PST 2016

Sorry for what is probably a very basic question; I've read through a number of XQuery tutorials but haven't been able to come up with something that yields the expected results. I have a MarkLogic database, which contains a few thousand XML documents. I'm trying to return the value of the ML UID (captured in the XML document as <system-pub-id>) for a known document identifier <article-title id="value">.

I've tried several variants of the following, but each returns the full set of system-pub-ids rather than the one matching the specified id value.

I've tried running through oXygen as well as the MarkLogic console; I get the same results (which I suppose is a good thing). I'm pretty certain that I'm missing something obvious, and appreciate any pointers.

I started with this:
xquery version "1.0-ml";
for $mlid in /samhsa-doc//system-pub-id
where /samhsa-doc//article-title[@id="AVD210_art1"]
return $mlid

but when I got the full list back (some 14,000 items - many of which don't have an article-title) I thought I'd try starting at the root ...

xquery version "1.0-ml";
for $mlid in /samhsa-doc
where /samhsa-doc//article-title[@id='AVD210_art1']
return $mlid//system-pub-id

<?xml version="1.0" encoding="UTF-8"?>
		<display-mode>Internal and External</display-mode>
							<article-title id="AVD210_art1"> ... </article-title>

Thank you in advance,


Mary McRae, PMP | XML Strategist / Technical Project Manager | mmcrae at iqsolutions.com

More information about the talk mailing list