[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:
xquery version "1.0-ml";
for $mlid in /samhsa-doc
where /samhsa-doc//article-title[@id='AVD210_art1']
return $mlid//system-pub-id


XML:
<?xml version="1.0" encoding="UTF-8"?>
<samhsa-doc>
	<doc-meta>
		<status>Archived</status>
		<system-pub-id>100001</system-pub-id>
		<display-mode>Internal and External</display-mode>
	</doc-meta>
	<doc-content>
		<samhsapub>
			<article>
				<front>
					<article-meta>
						<title-group>
							<article-title id="AVD210_art1"> ... </article-title>
						...


Thank you in advance,

Mary
					

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





More information about the talk mailing list