ThomasM: IF mit Schleife

Beitrag lesen

Hallo hackmac,

Brauche es nur in diesem einen speziellen Anwendungsfall. Danach ist das Kapitel für mich abgeschlossen.

Na dann, teste diesen Code mit einem XSLT 2.0-Prozessor wie Saxon (aktuell 9.4) oder AltovaXML (aktuell 2012)
[Bezug, Aufrufsyntax und mehr zum Thema XSLT]:

<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
  xmlns:xs="http://www.w3.org/2001/XMLSchema"  
  xmlns:fn="http://www.w3.org/2005/xpath-functions"  
  exclude-result-prefixes="fn xs">  
  
  <xsl:output method="xhtml" version="1.0" encoding="UTF-8" indent="yes"  
    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"  
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>  
  
  <xsl:template match="datenstrom">  
  
    <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">  
  
      <head><title>Test</title></head>  
  
      <body>  
  
        <p>Sehr geehrter Herr <xsl:value-of select="name"/>,</p>  
        <p>Nachfolgend Ihre Bestellung.</p>  
  
        <xsl:for-each-group select="*[fn:local-name()[fn:starts-with(.,'feld')]]"  
                            group-by="fn:substring-before(local-name(),'_')">  
  
          <p>aus dem Typ<xsl:value-of select="fn:position()"/>:</p>  
  
          <ul>  
            <xsl:for-each select="current-group()">  
              <li><xsl:value-of select="."/></li>  
            </xsl:for-each>  
          </ul>  
  
        </xsl:for-each-group>  
  
      </body>  
  
    </html>  
  
  </xsl:template>  
  
</xsl:stylesheet>

HTML-Ergebnis:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE html  
  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">  
   <head>  
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
      <title>Test</title>  
   </head>  
   <body>  
      <p>Sehr geehrter Herr Mustermann,</p>  
      <p>Nachfolgend Ihre Bestellung.</p>  
      <p>aus dem Typ1:</p>  
      <ul>  
         <li>Conten1</li>  
         <li>Conten2</li>  
      </ul>  
      <p>aus dem Typ2:</p>  
      <ul>  
         <li>Content3</li>  
         <li>Content4</li>  
      </ul>  
   </body>  
</html>

Sinnvoll wäre noch ein Element anrede oder selbiges Attribut bei name.

Versuche dennoch Grundkenntnisse zu erwerben, ansonsten führt die Nutzung des Beispiels nur zu vielen weiteren Fragen …

Grüße,
Thomas