xsl-list
[Top] [All Lists]

Re: Fwd: Built-in *@ vs. node()

2002-10-16 08:24:40
Janning Vygen wrote:
Hi all,

my very small Stylsheet:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet
 version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
 <xsl:output method="xml" encoding="iso-8859-1" indent="yes"/>

<xsl:template match="node()">
   <xsl:copy>
      <xsl:apply-templates select="@*"/>
      <xsl:apply-templates/>
   </xsl:copy>
</xsl:template>

</xsl:stylesheet>

It doesnt copy attribute nodes and i dont know why it doesnt. It
matches the default attribute template which i thought would be
overriden by <xsl:template match="node()">

In my XML Book "In a nutshell" it says:
"node() matches all nodes regardless of type: attribute,
namespace..."

Error: node() matches text(), comment(), processing-instruction(), *, but neither attributes nor namespaces.

So change it to

<xsl:template match="node() | @*">

Regards,

Joerg

and later in the same book about xsl:template it says:
"templates witch match patterns that just have a node test (*,@*, node()...) have priority -0.5" like built-in templates, but "they
[built-in templates] are also imported before all other templates,
and thus never override any explicit template rule, regardless of
priority"

so all attributes are selected by <xsl:apply-templates select="@*"/>
and because they match node() and <xsl:template match="node()"> has
 same priority as built-in <xsl:template match="text()|@*"> BUT it
 has higher import precedence.

So it should match and xsl:copy with attribute should create an
 attribute with same name and value as the source document (Kay, XSLT
 2nd edition p. 193)

But it doesnt work with xsltproc neither with saxon

Can anyone push me in the right direction to solve my problem (or how to read my books :-)

regards,
janning

--

System Development
VIRBUS AG
Fon  +49(0)341-979-7419
Fax  +49(0)341-979-7409
joerg(_dot_)heinicke(_at_)virbus(_dot_)de
www.virbus.de

VIRBUS hat jetzt als erster deutscher Softwarehersteller die Zertifizierung für den 3D Secure-Authentifizierungsstandard "Verified by Visa" erhalten. Details unter http://www.virbus.de/de/press/pressemitteilung/20020828_verified_by_VISA.


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>