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]

Re: Copying Groups of Attributes


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


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