This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Copying Groups of Attributes
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Copying Groups of Attributes
- From: Oliver Becker <obecker at informatik dot hu-berlin dot de>
- Date: Tue, 13 Feb 2001 13:21:12 +0100 (MET)
- Reply-To: xsl-list at lists dot mulberrytech dot com
Oh, a little mistake made by Jeni?
> Or you could store the relevant attribute names in a separate XML
> structure somewhere, e.g.:
>
> --- definitions.xml ---
> <attgroup name="coreattrs">
> <attribute name="id" />
> <attribute name="class" />
> <attribute name="style" />
> <attribute name="title" />
> </attgroup>
> ---
>
> With the above structure, you could retrieve the list of coreattrs
> through something like:
>
[...]
> <xsl:variable name="coreattrs"
> select="document('definitions.xml')//attgroup[@name =
> 'coreattrs']/attribute" />
>
> And then copy all those attributes whose name is equal to one of the
> @names of the attribute elements stored in the $coreattrs variable:
>
> <xsl:template match="p">
> <p>
> <xsl:copy-of select="@*[name() = $coreattrs]" />
> </p>
> </xsl:template>
$coreattrs is a node-set of nodes whose string-value is ... the empty string.
You wanted to compare with the name attribute.
So either
document('definitions.xml')//attgroup[@name = 'coreattrs']/attribute/@name
or
<xsl:copy-of select="@*[name() = $coreattrs/@name]" />
(Hoping not making another mistake myself ;-)
Cheers,
Oliver
/-------------------------------------------------------------------\
| ob|do Dipl.Inf. Oliver Becker |
| --+-- E-Mail: obecker@informatik.hu-berlin.de |
| op|qo WWW: http://www.informatik.hu-berlin.de/~obecker |
\-------------------------------------------------------------------/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list