4.1.2.6  Blöcke auszeichnen

Transformation-Patterns Blöcke auszeichnen Falls Blockstrukturen geklammert werden sollen, bspw. wenn diese im HTML Kapitel nur mittels h1 Überschriften-Tags gekennzeichnet sind, dann hilft vielleicht ein Template wie dieses weiter:

<xsl:template match="body">       
  <xsl:for-each select="h1">
    <block>
      <title>
        <xsl:apply-templates />
      </title>
      <xsl:apply-templates select="following-sibling::*[not(self::h1)]
          [preceding-sibling::h1[1][generate-id()=current()/generate-id()]]"/>                
    </block>
  </xsl:for-each>
</xsl:template>
Plain Text

Mittels der XPath fn:is() Funktion liesse sich der generate-id() Vergleich sogar noch abkürzen.