xsl-list
[Top] [All Lists]

Re: testing element's contents

2002-10-03 09:27:01
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(_dot_)heinicke(_at_)gmx(_dot_)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