Hi Marcus,
You can use "indentity transform" based stylesheet (as shown below)
conveniently, for creating filters:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<!-- identity transform; copies everything -->
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
<!-- filter 1 -->
<xsl:template match="*[starts-with(name(@*), 'dim1')]" />
<!-- filter 2 ; a priority is attached, otherwise filter 1 and filter
2 rules gets ambiguous -->
<xsl:template match="*[(_at_)dim1_a = 'yes']" priority="3" />
</xsl:stylesheet>
Regards,
Mukul
On 6/28/06, Marcus Streets <marcus(_at_)ncipher(_dot_)com> wrote:
I have inherited some XML files that I need to filter.
Because i have inherited the files I did not design the way the elements
were tagged.
But I have to write the xsl to do the filtering - and I am only just
dipping my toe into xsl.
I want to output XML - that I will feed into FrameMaker for typesetting.
I want to filter on a number of dimensions.
For various hysterical reasons the various elements have been taged with
attributes of the form
<element dim1_a="yes">
or
<element dim1_a="yes" dim1_b="yes">
I want to create a filter that will include all elements where either:
there are no attributes starting dim1
or
dim1_a="yes"
And I need to do this for several dim1 dim2 etc.
If needs be I can run a number of xsl transforms one for each dimension.
I have some other attributes = e.g. role that I need to keep.
Is this possible, or do I need to completely change the way these files
are tagged.
If so can I easily do that with xsl - or do I need to do it by hand.
Thanks
Marcus
--~------------------------------------------------------------------
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>
--~--