Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I would suggest a key based solution to group you XmlTreff elements. </p> <pre><code>&lt;xsl:key name="kChildren" match="XmlTreff[@IsSub='true']" use="generate-id(preceding-sibling::XmlTreff[@IsSub='false'][1])"/&gt; </code></pre> <p>And than use templates as following:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8" ?&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" &gt; &lt;xsl:output method="xml" indent="yes"/&gt; &lt;xsl:strip-space elements="*"/&gt; &lt;xsl:key name="kChildren" match="XmlTreff[@IsSub='true']" use="generate-id(preceding-sibling::XmlTreff[@IsSub='false'][1])"/&gt; &lt;xsl:template match="@* | node()"&gt; &lt;xsl:copy&gt; &lt;xsl:apply-templates select="@* | node()"/&gt; &lt;/xsl:copy&gt; &lt;/xsl:template&gt; &lt;xsl:template match="XmlTreff[@IsSub = 'false']" &gt; &lt;div&gt; &lt;a href="doesntmatter"&gt; &lt;xsl:value-of select="Tittel"/&gt; &lt;/a&gt; &lt;/div&gt; &lt;ul&gt; &lt;xsl:apply-templates select="key('kChildren', generate-id())" /&gt; &lt;/ul&gt; &lt;/xsl:template&gt; &lt;xsl:template match="XmlTreff[@IsSub = 'true']" &gt; &lt;li&gt; &lt;a href="doesntmatter"&gt; &lt;xsl:value-of select="Tittel"/&gt; &lt;/a&gt; &lt;/li&gt; &lt;/xsl:template&gt; &lt;xsl:template match="/*" &gt; &lt;html&gt; &lt;body&gt; &lt;div class="XmlTreffinfo"&gt; &lt;xsl:apply-templates select="XmlTreff[@IsSub = 'false']" /&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>Attention: I ignore the Start and Stop attribute. Only meaning for this could be to have a hint for first an last entry.</p> <p>With this input: ?xml version="1.0" encoding="utf-8" ?></p> <pre><code>&lt;xml&gt; &lt;XmlTreff IsSub="false" Start="false" Stop="false"&gt; &lt;Id&gt;Id1&lt;/Id&gt; &lt;Tittel&gt;Title1&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;XmlTreff IsSub="true" Start="true" Stop="false"&gt; &lt;Id&gt;Id2&lt;/Id&gt; &lt;Tittel&gt;Title2&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;XmlTreff IsSub="true" Start="false" Stop="false"&gt; &lt;Id&gt;Id3&lt;/Id&gt; &lt;Tittel&gt;Title3&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;XmlTreff IsSub="true" Start="false" Stop="true"&gt; &lt;Id&gt;Id4&lt;/Id&gt; &lt;Tittel&gt;Title4&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;XmlTreff IsSub="false" Start="false" Stop="false"&gt; &lt;Id&gt;Id1&lt;/Id&gt; &lt;Tittel&gt;Title12&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;XmlTreff IsSub="true" Start="true" Stop="false"&gt; &lt;Id&gt;Id2&lt;/Id&gt; &lt;Tittel&gt;Title22&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;XmlTreff IsSub="true" Start="false" Stop="false"&gt; &lt;Id&gt;Id3&lt;/Id&gt; &lt;Tittel&gt;Title32&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;XmlTreff IsSub="true" Start="false" Stop="true"&gt; &lt;Id&gt;Id4&lt;/Id&gt; &lt;Tittel&gt;Title42&lt;/Tittel&gt; &lt;/XmlTreff&gt; &lt;/xml&gt; </code></pre> <p>It will generate following output:</p> <pre><code>&lt;?xml version="1.0"?&gt; &lt;html&gt; &lt;body&gt; &lt;div class="XmlTreffinfo"&gt; &lt;div&gt; &lt;a href="doesntmatter"&gt;Title1&lt;/a&gt; &lt;/div&gt; &lt;ul&gt; &lt;li&gt; &lt;a href="doesntmatter"&gt;Title2&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a href="doesntmatter"&gt;Title3&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a href="doesntmatter"&gt;Title4&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;div&gt; &lt;a href="doesntmatter"&gt;Title12&lt;/a&gt; &lt;/div&gt; &lt;ul&gt; &lt;li&gt; &lt;a href="doesntmatter"&gt;Title22&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a href="doesntmatter"&gt;Title32&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a href="doesntmatter"&gt;Title42&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload