xsl-list
[Top] [All Lists]

Grouping for noobs

2005-01-26 08:04:43
Hi all

Forgive my noobiness, but I did check Dave Pawson's FAQs.

I have this XML:

<text:p text:style-name="Normal"/>
<text:p text:style-name="Preformatted Text"># ps -ef | grep syslog</text:p>
<text:p text:style-name="Preformatted Text">    root   194     1  0  Apr 02 ?   
    53:44 /usr/sbin/syslogd</text:p>
<text:p text:style-name="Preformatted Text"></text:p>
<text:p text:style-name="Normal"/>
<text:p text:style-name="Preformatted Text"># netstat -an | grep 514</text:p>
<text:p text:style-name="Preformatted Text">      *.514                         
        Idle</text:p>
<text:p text:style-name="Preformatted Text">      *.514                *.*      
          0      0 24576      0 LISTEN</text:p>
<text:p text:style-name="Normal"/>

and I want it to look like this:

<verbose>
# ps -ef | grep syslog
    root   194     1  0  Apr 02 ?       53:44 /usr/sbin/syslogd

</verbose>

<verbose>
# netstat -an | grep 514</text:p>
      *.514                                 Idle
      *.514                *.*                0      0 24576      0 LISTEN
</verbose>



Here's what I've got so far:

<!-- Text blocks -->
<xsl:template match="//text:p">
    <xsl:variable name="cur-style-name">
        <xsl:value-of select="@text:style-name"/>
    </xsl:variable>
    <xsl:variable name="text" select="."/>
    <xsl:if test="$text!=''">
        <!-- these are all newline rules -->
        <xsl:choose>
            <!-- for elements inside a Preformatted Text block -->
            <xsl:when test="$cur-style-name='Preformatted Text' and 
following-sibling::text:p">
                <!-- Group 'Preformatted Text' into a verbose block -->
                <verbose>
                <xsl:for-each select="text:p">
                    <xsl:apply-templates/>
                    <xsl:text disable-output-escaping="yes">
</xsl:text>
                </xsl:for-each>
                </verbose>
            </xsl:when>
            <xsl:otherwise>
                <xsl:text disable-output-escaping="yes">

</xsl:text>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:if>
</xsl:template>

and this produces:

# ps -ef | grep syslog<verbose></verbose>    root   194     1  0   Apr 02 ?     
  53:44 /usr/sbin/syslogd<verbose></verbose>
# netstat -an | grep 514<verbose></verbose>      *.514                          
       Idle<verbose></verbose>      *.514                *.*                0   
   0 24576      0 LISTEN<verbose></verbose>


All help appreciated. TIA.

Wade.

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



<Prev in Thread] Current Thread [Next in Thread>