Re: [xsl] how to match true and false and display yes and no instead?

Subject: Re: [xsl] how to match true and false and display yes and no instead?
From: Christian Rasmussen <byggemandbob@xxxxxxxxx>
Date: Wed, 27 Jul 2005 19:49:04 +0200
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@xxxxxxxxx <JBryant@xxxxxxxxx> 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@xxxxxxxxx>
> 07/27/2005 11:57 AM
> Please respond to
> xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>
>
> To
> xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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

Current Thread