RE: [xsl] XSL 1.1 -> Asking for an attribut namespace

Subject: RE: [xsl] XSL 1.1 -> Asking for an attribut namespace
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 29 Mar 2006 16:10:25 +0100
name() should return the lexical QName of the attribute, that is
"fo:text-align". However, you don't want to be testing namespace prefixes,
because users are allowed to choose any prefix they like. The construct you
want is

<xsl:copy-of select="..../@fo:*"/>

No need for the for-each and the xsl:if.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: news@xxxxxxxxxxx [mailto:news@xxxxxxxxxxx] 
> Sent: 29 March 2006 15:39
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: [xsl] XSL 1.1 -> Asking for an attribut namespace 
> 
> Hello List,
> 
> I've a XML:
> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"  ?>
> <Spalten xmlns:fo="http://www.w3.org/1999/XSL/Format";>
>     <Datenursprung>//SVERLAUF</Datenursprung>
>     <Spalte anzahl="1" breite-in-prozent="3" text-align="right">
>         <Titel fix="true"></Titel>
>         <Data fix="true" fo:text-align="right">position()</Data>
>     </Spalte>
> </Spalten>
> 
> The problem I have comes when I try to copy all attributes of 
> the <Data/>
> node into my result dataset. I want to copy each attribut as 
> long as it has
> a namespace of "fo:".
> 
>   <xsl:for-each select="$ListData/Spalten/Spalte[$i]/@*">    
>     <xsl:if test="starts-with(name(), 'fo:')">
>       <xsl:copy-of select="."/>
>     </xsl:if>
>   </xsl:for-each>
> 
> name() always gives me back the correct name, but without the 
> namespace of
> the attribut. I want to filter ther attributes this way since 
> I dont want to
> have attributes like "anzahl" in my FO result dataset.
> 
> Doeas anybody hase a idea how I can solve my probem?
> Thanks & with best regards, Jan

Current Thread