RE: [xsl] Xpath 1.0 Question : Excluding Attributes?

Subject: RE: [xsl] Xpath 1.0 Question : Excluding Attributes?
From: "Simon Shutter" <simon@xxxxxxxxxxx>
Date: Wed, 28 Mar 2007 21:30:31 -0700
Hi Abel,

Sorry for the confusion.  I meant only attribute nodes so I assume from your
examples that I have to put the entire path before each attribute of
interest.

Ie // tier1 / tier2 / @attrb1 | // tier1 / tier2 / @attrb2


Is there a way to exclude specific attributes in Xpath 1.0?

Simon


-----Original Message-----
From: Abel Braaksma [mailto:abel.online@xxxxxxxxx] 
Sent: March 28, 2007 4:54 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Xpath 1.0 Question : Excluding Attributes?

Simon Shutter wrote:
> Could someone tell me what the Xpath expression is that includes 
>
> all element nodes 
>   

//*

> and only specific attribute children?
>   

//* | //@specific1 | //@specific2

or do you mean:

//* | //specelem/@specific1 | | //specelem/@specific2


But I get the feeling that you want an identity transform of XML, where 
you want to leave all elements in place, get rid of all attributes 
except for a few. This can be done like:

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

<!-- throw away all attributes -->
<xsl:template match="@*" />

<!-- except these -->
<xsl:template match="@specific1 | @specific2">
   <xsl:copy />
</xsl:template>

<!-- and these with specific parents -->
<xsl:template match="someparent/@specific1">
   <xsl:copy />
</xsl:template>


HTH,

Cheers,
-- Abel Braaksma
   http://www.nuntia.nl

Current Thread