Hi everyone, I just joined this list so "greetings". I joined because
even after reading the entire
http://www.dpawson.co.uk/xsl/sect2/N1930.html page on copying, and
reading the reference on xsl:copy and xsl:copy-of I am still vexed by an
annoying problem. I'm using XALAN through the ColdFusion MX
implementation of their xmlTransform() function. I'm not sure exactly
which version of Xalan that is.
I'm trying to deep copy [the _content_ of] an xhtml body element. I have
users who enter arbitary HTML which I then pass through HTML TIDY which
produces a nice well-formed XHTML document for me. I want to extract the
body and store the content only.
With my existing attempts, I either get a concatenated string of all the
leaf text-nodes, or I get the whole entire file.
Here's what's stange, if I do a
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:copy-of select="node()"/>
</xsl:template>
</xsl:stylesheet>
I get the entire source tree copied to result tree.
*This is to be expectd*
but if I change
match="/"
to
match="/html/body"
then I get leaf nodes again :(
I also tried
match="/html/body/"
match="/html/body/*"
match="/html/body/@*|node()"
match="/html/body/node()"
no dice... I either get leaf text nodes or the whole entire file.
makes no difference if I change
select="node()"
to
select="."
or
select="@*|node()"
Is there no way at all to copy a fragment from the source tree onto the
result tree?!
I've also tried a boatload of other things... too many to list...
I know I can do this using a regular expression instead, but that's not
the point, I _should_ be able to do it easily with XSLT.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list