xsl-list
[Top] [All Lists]

Re: [xsl] Complex XPath question

2013-03-01 18:09:25
On Fri, 2013-03-01 at 14:38 -0800, dvint(_at_)dvint(_dot_)com wrote:
I have the following XML:
[...]

<object class="Page" package="com.atlassian.confluence.pages">
      <id name="id">37716253</id>
      <property name="title">
              <![CDATA[SOME OTHER TITLE]]>
      </property>
      ...
      <property name="version">3</property>
      <property name="creatorName">
              <![CDATA[wbenica]]>
      </property>
      <property name="creationDate">2012-11-16 14:00:35.000</property>
</object>
</wrapper>

I want to find the <id> element value for the <object> element that has
the highest version <property> (of those matching the title) and matches the
title <property> element for 'COMPARE'.

You mentioned elsewhere that you're using XSLT but not which version.

Here's an XQuery version:

(for $i in //object[match title here]
  order by property[@name eq "version"] descending
  return $i)[1]/id

David already suggested a way to match title elements.

In XPath we can do something like this, looking for an object such that
no other object has a higher version (assuming they all have versions):

//object[
  not(
   //object[property[@name eq "version"] > property[@name eq "version"]
  )]/id

but it might not be very fast...

-- 
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/
Ankh: irc.sorcery.net irc.gnome.org freenode/#xml


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>