3 Stimmen

Gruppierung von Elementen auf der gleichen Ebene

Ich habe ein Problem mit meiner Transformation und hoffte auf ein paar Ideen. Ich habe es mit einem wirklich flachen Eingabedokument zu tun, bei dem alle wichtigen Knoten Geschwister voneinander sind.

Das sieht in etwa so aus:

<title1> Rule 51 </title1>
<p> text here </p>
<p> text here </p>
<note> Source </note>
<p> text here </p>
<title1> Rule 52 </title1>
<p> text here </p>
<p> text here </p>
<note> Source </note>
<p> text here </p>

Mein Ziel ist es, dass diese Eingabe wie folgt aussieht:

  <section>
       <title1> Rule 51 </title1>
       <p> text here </p>
       <p> text here </p>
       <note> Source </note>
           <p> text here </p>
   </section>

   <section>
       <title1> Rule 52 </title1>
       <p> text here </p>
       <p> text here </p>
       <p> text here </p>
       <p> text here </p>
       <note> Source </note>
           <p> text here </p>
   </section>

Wie Sie oben sehen können, ist mein Hauptziel Gruppierung jeder title1 und alle seine folgenden Geschwister, bis es eine andere title1 in einen Abschnitt Element trifft. Irgendwelche Ideen?

Vielen Dank im Voraus.

2voto

LarsH Punkte 26458

Versuchen Sie

<!-- Change the match pattern to match the parent of the input you showed. -->
<xsl:template match="blockquote">
  <xsl:for-each-group group-starting-with="h:h4" select="*">
    <section>
      <xsl:copy-of select="current-group()" />

in XSLT 2.0.

Wenn Sie nur XSLT 1.0 verwenden können, sehen Sie unter Münchische Gruppierung und rufen Sie an, wenn Sie Hilfe brauchen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X