XPath expression and xsl:when

  • Thread starter gimme_this_gimme_that
  • Start date
G

gimme_this_gimme_that

What xpath expression would return the category-item having uid sps002
?


<category-list>
<category>
<uid>GRIDS_MAIN_CATEGORY_UID</uid>
<uid-type>Categories</uid-type>
<category-item-list>
<category-item>
<uid>sps0002</uid>
<uid-type>Grids</uid-type>
</category-item>
<category-item>
<uid>sps0005style0003</uid>
<uid-type>Grids</uid-type>
</category-item>
</category>
<category>
<uid>GRIDS_MAIN_CATEGORY_UID</uid>
<uid-type>Categories</uid-type>
<category-item-list>
<category-item>
<uid>sps0002</uid>
<uid-type>Grids</uid-type>
</category-item>
<category-item>
<uid>sps0005style0003</uid>
<uid-type>Grids</uid-type>
</category-item>
</category>
</category-list>

I've tried the following Xpath expression ... :

<xsl:when
test="'sps0002'=//category-list/category/category-item-list/category-item/uid">
<xsl:value-of select="./uid"/>

Which doesn't work. (Help!)

But actually, what I'd really like is an Xpath expression
that would fetch this node directly without using a xsl:when.

What I'm actually doing is checking if a node with an id of sps002
exists in a JDOM Element using it's the JDOM XPath object. This returns
either an Element or an Attribute. But right now I'm having to
fetch all the category-item Elements and iterate through them to
determine
if one with an sps002 id exists.

Thanks.
 
D

David Carlisle

What xpath expression would return the category-item having uid sps002

/category-list/category/category-item-list/category-item[uid='sps2002']

<xsl:when
test="'sps0002'=//category-list/category/category-item-list/category-item/uid">


That tests if there us any uid anywhere in the document that has this
value, so it will be always true or always false depending on whether
such a node exists.

<xsl:value-of select="./uid"/>

so this will select the uid child of the current node whether or not
this is the node taht has the specified uid.

David
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,186
Members
46,742
Latest member
AshliMayer

Latest Threads

Top