xsl-list
[Top] [All Lists]

Re: select element based on value of one of the children

2005-10-11 02:28:08
Hi Bjorn,

Dear reader,
As a XML and XSL newbie I would like to know whether it is possible to
select an element based on the value of one of children and how this can
best be done.


<xsl:template match="a[b='7']">
  <xsl:copy-of select="."/>
</xsl:template>

If you wish to do further processing rather than just a copy, you can
apply templates instead. What it is saying is that it should match all
a elements with a child element b whose value is equal to '7'. The
XSLT parser makes an implicit conversion to a string, but otherwise
you might use [string(b)='7'] instead.

P.S. I tried to do my "homework" and found the following example
http://www.dpawson.co.uk/xsl/sect2/N3235.html#d4086e214. I, however, do
not understand what their solution to the problem is.

What this says (from your homework):
<xsl:apply-templates mode="copy"
select="record[data-field/subfield='0039-0310X']" />

Is to apply templates to all record elements that have a child
data-field with another child whose string value is equal to
'0039-0310X'. They use mode so that the template matching * (all
elements) is not invoked by default.

Hope this helps.

Regards,
Ragulf Pickaxe :-)

--~------------------------------------------------------------------
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>