Thank you very much to both of you, Michael Kay and JBryant!
Regarding the closing tag: I'm very much aware of the possibility of
using forward slash. I was using XMLSpy, and it automatically inserts
a closing tag, and I was in a hurry...
Regarding the point you make, JBryant, that it should be easier
putting <xsl:apply-templates/> in all template matches.
According to my limited knowledge of XSLT, this means "fire all
templates that matches subnodes from the context node... Now, it works
fine in many situations, but I think there are also situations where
you dont want ALL template matches to fire on all subnodes, but just
on some of them. Another point regarding this, is
the:<xsl:apply-templates select="../married"> Here I want to fire a
template on a sibling. Here <xsl:apply-templates/> also doesn't work
because its a sibling and not a subnode....
Or have I totally misunderstood? then please help me out :-)
Michael Kay, you say this:
<xsl:template match="members/profile/married[.='false']">no</xsl:template>
<xsl:template match="members/profile/married[.='true']">yes</xsl:template>
is another way of doing it. Now there are two templates. I have used
<xsl:if> Is templates faster (better) than <xsl:if> ? Or are there
other arguments for using this instead, then I'll change my code.
Thanks a lot for very good inputs :-)
/Christian
On 7/27/05, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
Another way do this:
<xsl:template match="members/profile/married">
<xsl:if test=".='false'">no</xsl:if>
<xsl:if test=".='true'">yes</xsl:if>
</xsl:template>
is this:
<xsl:template match="members/profile/married[.='false']">no</xsl:template>
<xsl:template match="members/profile/married[.='true']">yes</xsl:template>
Also, the members/profile/ qualifier is probably redundant.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Christian Rasmussen [mailto:byggemandbob(_at_)gmail(_dot_)com]
Sent: 27 July 2005 18:49
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] how to match true and false and display
yes and no instead?
Of course you are right... I was too fast making a sample xml. The
real xml-file I'm working on is too complex to post here, so its
better with a sample.
However, I've made a better sample and actually now it works: Here's
the solution:
do you have any comments to this?
thank-you for respons anyway...
XML-FILE:
=======
<?xml version="1.0" encoding="UTF-8"?>
<members>
<profile>
<name>Bill Clinton</name>
<married>false</married>
<kid>joe</kid>
</profile>
</members>
XSL-FILE:
=======
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="members">
members-template is matched!
<xsl:apply-templates select="profile/kid"></xsl:apply-templates>
</xsl:template>
<xsl:template match="members/profile/married">
<xsl:if test=".='false'">no</xsl:if>
<xsl:if test=".='true'">yes</xsl:if>
</xsl:template>
<xsl:template match="kid">
<xsl:apply-templates select="../married"></xsl:apply-templates>
kids-template is matched!
</xsl:template>
</xsl:stylesheet>
On 7/27/05, JBryant(_at_)s-s-t(_dot_)com <JBryant(_at_)s-s-t(_dot_)com>
wrote:
Well, if you actually tried to run these templates, your
XML parser should
spit out error messages.
You seem to be trying to use </xsl:apply-templates> to close
<xsl:template>, which isn't XML.
Assuming you mean
<xsl:template match="members">
xsl-fo goes here.....
</xsl:template>
then you want
<xsl:template match="members">
xsl-fo goes here.....
<xsl:apply-templates/>
</xsl:template>
Otherwise, the processor gets to members and stops, never
processing the
children of members.
Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)
Christian Rasmussen <byggemandbob(_at_)gmail(_dot_)com>
07/27/2005 11:57 AM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc
Subject
[xsl] how to match true and false and display yes and no instead?
Hi experts,
It seems to be a pretty simple question, but I'm newbie and I cannot
figure out how to do it :-(
please help me!
here is some sample xml showing my problem:
<members>
<profile>
<name>Bill Clinton</name>
<married>false</married>
<kid>joe</kid>
</profile>
</members>
my xsl looks something like this:
<xsl:template match="members">
xsl-fo goes here.....
</xsl:apply-templates>
<xsl:template match="members/profile/married">
<xsl:if test=".='false'">no, he is not married</xsl:if>
<xsl:if test=".='true'">yes, he is married</xsl:if>
</xsl:apply-templates>
<xsl:template match="kid">
xsl-fo goes here.....
<xsl:apply-templates select="../married"></xsl:apply-templates>
I simply want to display "yes" and "no" instead of "true"
and "false".
So I have made a template match which specifically matches
the element
which holds the true or false value. After matching this element, I
test whether its true or false, and returns the text instead.
nothing shows up :-(
Thanx in advance for you help
/Christian
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--