title: How to create html list from flat xml file using XSLT
body: <p>I am looking for a clean way to do the following using XSLT.</p>
  
  <p>Convert this source:</p>
  
  <pre><code>&lt;para&gt;blah blah&lt;/para&gt;
  &lt;list&gt;num1&lt;/list&gt;
  &lt;list&gt;num2&lt;/list&gt;
  &lt;list&gt;num3&lt;/list&gt;
  &lt;para&gt;blah blah&lt;/para&gt;
  &lt;list&gt;num1&lt;/list&gt;
  &lt;list&gt;num2&lt;/list&gt;
  &lt;para&gt;blah blah blah blah blah&lt;/para&gt;
  </code></pre>
  
  <p>To this output:</p>
  
  <pre><code>&lt;p&gt;blah blah&lt;/p&gt;
  &lt;ol&gt;
      &lt;li&gt;num1&lt;/li&gt;
      &lt;li&gt;num2&lt;/li&gt;
      &lt;li&gt;num3&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;blah blah&lt;/p&gt;
  &lt;ol&gt;
      &lt;li&gt;num1&lt;/li&gt;
      &lt;li&gt;num2&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p&gt;blah blah blah blah blah&lt;/p&gt;
  </code></pre>
  
  <p>Keep in mind I do not know exactly how many <code>&lt;list&gt;</code>'s there will be.</p>
  
  <p>So far I have this:</p>
  
  <pre><code>&lt;xsl:template match="para"&gt;
      &lt;p&gt;&lt;xsl:value-of select="." /&gt;&lt;/p&gt;
  &lt;/xsl:template&gt;
  
  &lt;xsl:template match="list"&gt;
      &lt;ol&gt;&lt;li&gt;&lt;xsl:value-of select="." /&gt;&lt;/li&gt;&lt;/ol&gt;
  &lt;/xsl:template&gt;
  </code></pre>
  
  <p>But my output looks like this:</p>
  
  <pre><code>&lt;p&gt;blah blah&lt;/p&gt;    
  &lt;ol&gt;&lt;li&gt;num1&lt;/li&gt;&lt;/ol&gt;
  &lt;ol&gt;&lt;li&gt;num2&lt;/li&gt;&lt;/ol&gt;
  &lt;ol&gt;&lt;li&gt;num3&lt;/li&gt;&lt;/ol&gt;
  &lt;p&gt;blah blah&lt;/p&gt;
  &lt;ol&gt;&lt;li&gt;num1&lt;/li&gt;&lt;/ol&gt;
  &lt;ol&gt;&lt;li&gt;num2&lt;/li&gt;&lt;/ol&gt;
  &lt;p&gt;blah blah blah blah blah&lt;/p&gt;
  </code></pre>
  
  <p>I know why I am getting duplicate <code>&lt;ol&gt;</code> elements, but I do not know how to stop it. Quite a brain teaser.</p>
  
  <p>Any help would be greatly appreciated.</p>