This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: testing element's contents


Excellent Joerg! The only place this would not work is
if I have a paragraph element with only a Link element
in it, such as:

<p><Link href="blah.html">This is a link</Link></p>

I need those to pass through the test and be wrapped
in a p tag. Otherwise, it catches everything else I
need!

Thank you! That gives me great direction...

--nate


--- Joerg Heinicke <joerg.heinicke@gmx.de> wrote:
> <xsl:when test="descendant::node()[not(self::Link or
> self::Media)]">
>    <p><xsl:apply-templates/></p>
> </xsl:when>
> 
> If there is any descendant node (including elements,
> comments, PIs, 
> text), which is not element Link or element Media,
> create <p> in output 
> tree.
> 
> Regards,
> 
> Joerg
> 
> Nathan Shaw wrote:
> > 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
> > 
> > 
> 
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 


__________________________________________________
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]