[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] XHTML to XHTML transform


Subject: RE: [xsl] XHTML to XHTML transform
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Fri, 2 Apr 2004 23:45:02 +0100

Text nodes don't have names, so they don't have a namesapce URI. I guess
you're thinking of the namespace URI of the parent element. So you can match
them as

match="ns:*/text()"

where the prefix ns is bound to the required namespace.

Michael Kay

> -----Original Message-----
> From: Jeffrey Moss [mailto:jeff@xxxxxxxxxxxx] 
> Sent: 02 April 2004 21:55
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] XHTML to XHTML transform
> 
> How do I match text nodes in my custom namespace? As in 
> override the default
> text node template for "mynamespace"?
> 
> All my variables <mynamespace:name>blah</mynamespace:name> 
> for instance
> appear as text in the results, I've tried this:
> 
> <xsl:template match="text()[namespace-uri()='mynamespace:namespace']">
> </xsl:template>
> 
> but that doesn't work... I ended up changing all the elements 
> I want hidden
> under all circumstances to the mynamespace-var namespace...
> 
> <xsl:template match="*[namespace-uri()='mynamespace-var:namespace']">
> </xsl:template>
> 
> This works, but I think its messy, I was wondering if there 
> was a better
> way? I'm pasting my code below.
> 
> Thanks,
> 
> -Jeff
> 
> 
> 
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsl:stylesheet version="1.0"
>   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>   xmlns:nbn="nbn:namespace"
>   xmlns:nbn-run="nbn-run:namespace"
>   xmlns:nbn-var="nbn-var:namespace"
>   exclude-result-prefixes="nbn nbn-run nbn-var">
> <xsl:param name="controller" select="'index.php'"/>
> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
> 
> <xsl:template match="/sitemap">
>   <DIV CLASS="navtree">
>     <xsl:apply-templates />
>   </DIV>
> </xsl:template>
> 
> <xsl:template match="*[not(namespace-uri())]">
>   <xsl:copy>
>     <xsl:apply-templates />
>   </xsl:copy>
> </xsl:template>
> 
> <xsl:template match="text()">
> </xsl:template>
> 
> <xsl:template match="*[namespace-uri()='nbn-var:namespace']">
> </xsl:template>
> 
> <xsl:template match="nbn:link">
>   <xsl:element name="A">
>     <xsl:attribute name="HREF">/<xsl:value-of
> select="$controller"/>/module/<xsl:value-of
> select="nbn-var:location/nbn-var:module" />/action/<xsl:value-of
> select="nbn-var:location/nbn-var:action" />/</xsl:attribute>
>     <xsl:attribute name="ID"><xsl:value-of 
> select="@id"/></xsl:attribute>
>     <xsl:attribute name="CLASS">menuitem</xsl:attribute>
>     <xsl:value-of select="@name"/>
>   </xsl:element>
>   <xsl:apply-templates />
>   <BR/>
>   <xsl:if test="link">
>     <xsl:element name="DIV">
>       <xsl:attribute name="CLASS">submenu</xsl:attribute>
>       <xsl:apply-templates select="link"/>
>     </xsl:element>
>   </xsl:if>
> </xsl:template>
> 
> </xsl:stylesheet>


Current Thread
Keywords