Okay, I'm looping through attributes. Now I need to determine if the
name
of an attribute starts with a particular text expression. I have the
following (and it doesn't work):
<xsl:for-each select="@*">
<xsl:if test="starts-with(@,'S')">
...
</xsl:if>
</xsl:for-each>
Am I close???
Yes:
<xsl:for-each select="@*">
<xsl:if test="starts-with(.,'S')">
...
</xsl:if>
</xsl:for-each>
or even:
<xsl:for-each select="@*[starts-with(.,'S')]">
...
</xsl:for-each>
whoa -- i just noticed that the original poster asked to select
those attributes whose *names* started with 'S', not whose values
started with 'S'.
in case that's what he wanted, just use "starts-with(name(.), 'S')"
instead. i think ...
Yes, you're right -- I replied without reading closely enough. Glad to see
someone else did the same thing! ;-)
And since that's the case, local-name() might be more appropriate than
name().
What's that about great minds thinking alike...
Dave
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list