Greetings,
I have an application in which I want to pass only elements in a
document that are members of a particular namespace. I want the
elements, the attributes and text nodes, but no child elements or
attributes from other namespaces.
Naively I though that I could just do something like this:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dap="http://xml.opendap.org/ns/DAP2"
>
<xsl:output method='xml' version='1.0' encoding='UTF-8'
indent='yes'/>
<xsl:template match="/dap:Dataset">
<xsl:copy >
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="dap:*">
<xsl:copy >
<xsl:copy-of select="dap:*" />
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="text()|@*">
<xsl:copy-of select="." />
</xsl:template>
</xsl:stylesheet>
But all of the text content of the elements from other namespaces
leaks through.
I realize that this guy:
<xsl:template match="text()|@*">
<xsl:copy-of select="." />
</xsl:template>
Is the culprit.
After many futile attempts at trying write an XPATH to match only text
and attributes whose parent element is in the dap namespace I am here,
looking for some advice.
Any ideas? I have this feeling that the solution to this should be
really simple, and that my transform is already twice as long as it
should be.
Nathan
============================================================
Nathan Potter Oregon State University, COAS
ndp at coas.oregonstate.edu 104 Ocean. Admin. Bldg.
541 737 2293 voice Corvallis, OR 97331-5503
541 737 2064 fax
--~------------------------------------------------------------------
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>
--~--