xsl-list
[Top] [All Lists]

Re[2]: [xsl] applying code from inside the comment

2007-01-16 10:13:45
I've encountered the following problem:

input

<?xml version="1.0"?>
<A>
<!--<B>hello world</b>-->
<C>this should remain also</C>
</A>

I've tried different ways to convert comment into code. But 
none of them works and I dont have any clues. Can you help me?

MK> I'm not sure what you want to do with the comment. But the important thing
MK> is to note that the comment is just text. It doesn't contain an element
MK> node, it just contains text with a strong resemblance to element markup. If
MK> the structure is potentially more complex than your example, then perhaps
MK> you should consider extracting the text of the comment and parsing it as an
MK> XML document:

MK> <xsl:template match="comment()">
MK>   <xsl:apply-templates select="saxon:parse(.)"/>
MK> </xsl:template>


Thank you very much, Michael. This works great. The only thing you
have to make sure when making saxon:parse that you providing it with
valid xml. Great extension. Thank you once again. Here's the code
I've come up with.

<xsl:template match="//comment()[contains(.,'drive_panel')]">
    <xsl:variable name="comment">
        &lt;comment&gt;
                <xsl:value-of select="."/>
        &lt;/comment&gt;
    </xsl:variable>

    <xsl:variable name="node-set" select="saxon:parse($comment)" />
    <xsl:apply-templates select="$node-set"/>
</xsl:template>

<xsl:template match="comment">
        <xsl:apply-templates select="node() except ./text()"/>
</xsl:template>



-- 
Alexey                            
mailto:alexey(_dot_)nikolaenkov(_at_)actimind(_dot_)com


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