4.1.4.1  XSLT Analyze String

Es gibt aber auch ein eigenes XSLT Konstrukt, unabhängig von XPATH, um reguläre Ausdrücke anwenden zu können. Der Quelltext dazu sieht so aus:

<xsl:template match="text()[parent::xml-code]">
  <xsl:analyze-string select="." regex="&lt;[^&gt;^!]+&gt;">
    <xsl:matching-substring>
      <b><xsl:value-of select="."/></b>     
    </xsl:matching-substring>
    <xsl:non-matching-substring>
      <xsl:value-of select="."/>
    </xsl:non-matching-substring>
</xsl:template>
Plain Text

Hier wird jeder Textknoten eines Elements untersucht und falls ein XML-Tag enthalten ist, so wird dieses über die xsl:matching-substring Anweisung in ein <b> Tag gewrapped. Im nächsten Transformationsschritt wird dieses wiederum in Fettschrift dargestellt.

Das ist ein einfacher Syntax-Highlighter für XML Quelltexte. Auf diese Weise ist der Syntax-Highlighter für dieses PDF realisiert.

Man kann auch die xsl:analyze-string Elemente in den xsl:matching-substring und xsl:non-matching-substring Elementen verschachteln, was natürlich noch wesentlich kompliziertere Problemstellungen erlaubt.