look like your code work as expected - only one notice from me - it
better to use push model instead pull model (or data-driven instead
template-driven)
try use something like <xsl:apply-templates select="bla-bla/@*" mode="pairs">
<xsl:template match="@*" mode="pairs">
attrName: <xsl:value-of select="name()"/>
attrValue: <xsl:value-of select="."/>
</xsl:template>
On Wed, Mar 5, 2008 at 3:56 PM, Pablo Sebastián Rodriguez
<psrodriguez(_at_)jusbaires(_dot_)gov(_dot_)ar> wrote:
wow ! really nice trick ... not quite what i was looking for, but it'll
get the job done, thanks.
i think i wasn't clear enough
with
<music>
<project name="W.A.S.T.E.">
<release name="We all seek total entropy" year="2003"/>
<release name="Violent delights" year="2006"/>
</project>
</music>
i get
attrName: name
attrValue: W.A.S.T.E.
if i had
<music>
<project name="W.A.S.T.E." newThing="qwertyu">
<release name="We all seek total entropy" year="2003"/>
<release name="Violent delights" year="2006"/>
</project>
</music>
the result would be
attrName: name
attrValue: W.A.S.T.E
attrName: newThing
attrValue: qwertyu
thanks again
> In XSLT 2.0 you can do:
>
> <xsl:template match="music">
> <xsl:call-template name="attr">
> <xsl:with-param name="stuff" select="project"/>
> </xsl:call-template>
> <xsl:call-template name="attr">
> <xsl:with-param name="stuff" as="element()*">
> <project newThing="whoKnowsWhat"/>
> <project adadad="qwertyu"/>
> </xsl:with-param>
> </xsl:call-template
> </xsl:template>
>
> Alternatively you can do a 2-phase transformation: phase one takes the
> input
> and adds a couple of attributes, phase 2 applies your current logic.
>
> Michael Kay
> http://www.saxonica.com/
>
>> hi,
>> i'm new using xsl, so please be patient... ;-)
>>
>> the input is something like this:
>>
>> <music>
>>
>> <project name="W.A.S.T.E">
>> <release name="We all seek total entropy" year="2003"/>
>> <release name="Violent delights" year="2006"/>
>> </project>
>>
>> <project name="Winterkalte">
>> <release name="Structures of Destruction" year="1997"/>
>> <release name="Drum 'n' noise" year="1999"/>
>> </project>
>>
>> </music>
>>
>>
>> the xsl:
>>
>> <xsl:template match="music">
>> <xsl:call-template name="attr">
>> <xsl:with-param name="stuff" select="project"/>
>> </xsl:call-template>
>> </xsl:template>
>>
>> <xsl:template name="attr">
>> <xsl:param name="stuff"/>
>> <xsl:for-each select="$stuff/@*">
>>
>> attrName: <xsl:value-of select="name()"/>
>> attrValue: <xsl:value-of select="."/>
>>
>> </xsl:for-each>
>> </xsl:template>
>>
>> the output:
>>
>> attrName: name
>> attrValue: W.A.S.T.E
>>
>> attrName: name
>> attrValue: Winterkalte
>>
>>
>> what i'm trying to do is add an attribute so the output will be:
>>
>> attrName: newThing
>> attrValue: whoKnowsWhat
>>
>> attrName: name
>> attrValue: W.A.S.T.E
>>
>> attrName: name
>> attrValue: Winterkalte
>>
>> attrName: adadad
>> attrValue qwertyu
>>
>> i tried using <xsl:attribute> but i can't make it work... any ideas ?
>>
>> thanks
>>
>>
>>
>> --~------------------------------------------------------------------
>> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>> To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
>> or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
>> --~--
>>
>
>
> --~------------------------------------------------------------------
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
> To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
> or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
> --~--
>
>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--