xsl-list
[Top] [All Lists]

Re: [xsl] Replace content of element, then transform it...

2012-08-30 06:26:14
trond(_dot_)huso(_at_)ntb(_dot_)no wrote:

So I tried this

<xsl:template match="body">
         <body>
             <xsl:value-of select="." disable-output-escaping="yes"/>
         </body>
     </xsl:template>

     <xsl:template match="leadtext">
         <leadtext>
             <xsl:value-of select="." disable-output-escaping="yes"/>
         </leadtext>
     </xsl:template>


     <xsl:template match="node()|@*">
         <xsl:variable name="foo">
         <xsl:copy>
             <xsl:apply-templates select="node()|@*"/>
         </xsl:copy>
         </xsl:variable>
         <xsl:apply-templates select="$foo" mode="phase2" />
     </xsl:template>
<!-- Error message:
Description: Cannot create an attribute node (id) whose parent is a documen= t 
node
-->

After reading about how this works, I now understand why I am getting the e= 
rror. Is there another alternative to make this possible in one document, o= r 
do I have to send the output to a new document?

Consider to show us minimal but complete XML input and XSLT code samples causing that error, then we should be able to help.

Or try to move the code storing stuff in the variable in the template for the root node e.g.

<xsl:template match="/">
  <xsl:variable name="foo">
    <xsl:apply-templates/>
  </xsl:variable>
  <xsl:apply-templates select="$foo/node()" mode="phase2"/>
</xsl:template>




--

        Martin Honnen --- MVP Data Platform Development
        http://msmvps.com/blogs/martin_honnen/

--~------------------------------------------------------------------
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>
--~--