Mary McRae
2016-01-06 18:28:35 UTC
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Ā | ***@iqsolutions.com
_______________________________________________
***@x-query.com
http://x-query.com/mailman/listinfo/talk
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Ā | ***@iqsolutions.com
_______________________________________________
***@x-query.com
http://x-query.com/mailman/listinfo/talk