Re: [xsl] Without parentnode, how to matchng first and last position of the list-item

Subject: Re: [xsl] Without parentnode, how to matchng first and last position of the list-item
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 12 Nov 2008 11:47:13 GMT
<div>
<p>hmmmm</p>
<p class="FeatureListNumbered">1.Stand in a line in front.</p>
<p class="FeatureListNumbered">2.Which month has the most birthdays?</p>
<p class="FeatureH1">Problem Guide:</p>
<p class="FeatureListNumbered">1.Stand in a line in front.</p>
<p class="FeatureListNumbered">2.Which month has the most birthdays?</p>
<p>haaaa</p>
</div>




<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
 

<xsl:output indent="yes"/>

<xsl:template match="div">
<div>
<xsl:for-each-group select="*" group-adjacent="string(self::p/@class[contains(.,'List')])">
<xsl:choose>
 <xsl:when test="self::p/@class[contains(.,'List')]">
  <list1 type="1">
   <xsl:apply-templates select="current-group()"/>
  </list1>
 </xsl:when>
 <xsl:otherwise>
   <xsl:apply-templates select="current-group()"/>
 </xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</div>
</xsl:template>

<xsl:template match="p">
 <p>
  <xsl:apply-templates/>
 </p>
</xsl:template>

<xsl:template match="p[@class='FeatureListNumbered']/text()[1]">
 <xsl:value-of select="substring-after(.,'.')"/>
</xsl:template>
<xsl:template match="p[@class='FeatureH1']">
 <sect1><title>
  <xsl:apply-templates/></title></sect1>
</xsl:template>

</xsl:stylesheet>




$ saxon9 plist.xml plist.xsl 
<?xml version="1.0" encoding="UTF-8"?>
<div>
   <p>hmmmm</p>
   <list1 type="1">
      <p>Stand in a line in front.</p>
      <p>Which month has the most birthdays?</p>
   </list1>
   <sect1>
      <title>Problem Guide:</title>
   </sect1>
   <list1 type="1">
      <p>Stand in a line in front.</p>
      <p>Which month has the most birthdays?</p>
   </list1>
   <p>haaaa</p>
</div>

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. 
________________________________________________________________________

Current Thread