This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: testing element's contents
- From: "Andrew Welch" <awelch at piper-group dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 3 Oct 2002 16:54:57 +0100
- Subject: RE: [xsl] testing element's contents
- Reply-to: xsl-list at lists dot mulberrytech dot com
Couldn't you just count the number of child nodes (including text()) and
then test for img/a?
something like:
<xsl:choose>
<xsl:when test="count(child::node()) = 1 and (child::img or
child::a)">
<xsl:copy-of select="child::*"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
cheers
andrew
> -----Original Message-----
> From: Nathan Shaw [mailto:n8_shaw@yahoo.com]
> Sent: 03 October 2002 16:08
> To: XSL-List@lists.mulberrytech.com
> Subject: [xsl] testing element's contents
>
>
> hi all,
>
> Thanks to everyone who gave me advice on my previous
> post about images and captions. Now, I have another
> tricky lil' xslt problem. If a paragraph element
> contains ONLY a media element OR a media element
> surrounded by a link element and nothing more (read,
> no other nodes, be they text or not), such as:
>
> <p><img
> src="http://www.mylocal.gov/images/nasausa.gif"
> height="255" width="432"/></p>
>
> I need to strip the p tags out of resulting output.
>
> However, if it does contain other nodes, such as:
>
> <p><img
> src="http://www.mylocal.gov/images/nasausa.gif"
> height="255" width="432"/>This is my news release. The
> authors will be typing the news release content in
> here! I am not sure what this news release is even
> about, but lets see how it comes out in XML, shall we?
> As I see it coming out as:</p>
>
> I need to leave it alone.
>
> Here is what I have so far. It only looks to see if a
> media element or a media element wrapped by a link
> element exists, but does not consider if there is a
> text node after a media or link element.
>
> <xsl:template match="p">
> <xsl:choose>
> <xsl:when test="((descendant::*[1])[self::Link] and
> (descendant::*[2])[self::Media]) or
> (descendant::*[1])[self::Media]"><xsl:apply-templates
> /></xsl:when>
> <xsl:otherwise><p><xsl:apply-templates
> /></p></xsl:otherwise>
> </xsl:choose>
> </xsl:template>
>
> Thoughts? Ideas? Criticisms?
>
> --nate
>
>
>
> __________________________________________________
> Do you Yahoo!?
> New DSL Internet Access from SBC & Yahoo!
> http://sbc.yahoo.com
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.393 / Virus Database: 223 - Release Date: 30/09/2002
>
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.393 / Virus Database: 223 - Release Date: 30/09/2002
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list