Michael Kay wrote:
Hi,
<xsl:template match="/Request">
<data>
<Elem n="{name(.)}">
<xsl:for-each select="@*">
<xsl:if test="name(.)='System'">
<attr n="{name(.)}">
<xsl:element name="val">
<xsl:attribute name="s">
<xsl:value-of select="normalize-space(.)"/>
</xsl:attribute>
</xsl:element>
</attr>
</xsl:if>
</xsl:for-each>
<xsl:apply-templates/>
</Elem>
</data>
</xsl:template>
I only want to get the "System" attribute and ignore
all the rest.
Then why not replace the xsl:for-each and xsl:if by
<xsl:for-each select="@System">?
In fact, the whole thing could be rewritten:
<xsl:template match="/Request">
<data>
<Elem name="Request">
<attr n="System">
<val s="{(_at_)System}"/>
</attr>
</Elem>
</data>
</xsl:template>
Or more precisely:
<xsl:template match="/Request">
<data>
<Elem name="Request">
<xsl:if test="@System">
<attr n="System">
<val s="{ @System }"/>
</attr>
</xsl:if>
</Elem>
</data>
</xsl:template>
or maybe more intuitively (but depends on the exact problem and context):
<xsl:template match="/Request">
<data>
<Elem name="Request">
<xsl:apply-templates select="@System"/>
</Elem>
</data>
</xsl:template>
<xsl:template match="@*">
<attr n="{ name(.) }">
<val s="{ . }"/>
</attr>
</xsl:template>
Regards,
--
Florent Georges
http://www.fgeorges.org/
--~------------------------------------------------------------------
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>
--~--