title: Dynamic structure <td> and the value of property
body: <p>1) how to add a loop for the dynamic determination of the sum of td by the sum of th</p>
  
  <p>2) @ key = 'ip' - it is also necessary to make dynamic that would take a value from the constructed t</p>
  
  <pre><code>&lt;tr&gt;
    &lt;th&gt;Name&lt;/th&gt;
    &lt;th&gt;Type&lt;/th&gt;
    &lt;th&gt;Text&lt;/th&gt;
    &lt;xsl:for-each-group select="//folder/element/property" group-by="@key"&gt;
      &lt;th&gt;&lt;xsl:value-of select="current-grouping-key()"/&gt;&lt;/th&gt;
    &lt;/xsl:for-each-group&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;
      &lt;xsl:value-of select="@name"/&gt;
    &lt;/td&gt;
    &lt;td&gt;
      &lt;xsl:value-of select="@*[name() = 'xsi:type'][1]"/&gt;
    &lt;/td&gt;
    &lt;td&gt;
      &lt;xsl:value-of select="documentation"/&gt;
    &lt;/td&gt;
    &lt;xsl:for-each select="..."&gt;
      &lt;td&gt;
        &lt;xsl:value-of select="string-join(property[@key='ip']/@value, ', ')"/&gt;
      &lt;/td&gt;
    &lt;/xsl:for-each&gt;
  &lt;/tr&gt;
  </code></pre>
  
  <p>input xml file</p>
  
  <pre><code>&lt;folder name="Technology &amp;amp; Physical" type="technology"&gt;
      &lt;element xsi:type="archimate:Node" name="SMX_U_TEST"&gt;
        &lt;documentation&gt;SMX&lt;/documentation&gt;
        &lt;property key="ip" value="10.255.2.111"/&gt;
      &lt;/element&gt;
      &lt;element xsi:type="archimate:Node" name="CBS3CVR"&gt;
        &lt;documentation&gt;DSR3CVR&lt;/documentation&gt;
        &lt;property key="ip" value="10.15.114.24"/&gt;
        &lt;property key="port" value="1521"/&gt;
        &lt;property key="hw"/&gt;
      &lt;/element&gt;
      &lt;element xsi:type="archimate:Node" name="SMX"&gt;
        &lt;property key="ip" value="10.255.2.111"/&gt;
        &lt;property key="port" value="8181"/&gt;
        &lt;property key="port" value="8182"/&gt;
        &lt;property key="port" value="8184"/&gt;
      &lt;/element&gt;
      &lt;element xsi:type="archimate:Node" name="Informatica test"&gt;
         &lt;documentation&gt;Informatica&lt;/documentation&gt;
        &lt;property key="ip" value="10.11.30.89"/&gt;
        &lt;property key="port" value="1521"/&gt;
      &lt;/element&gt;
      &lt;element xsi:type="archimate:Node" name="DSR3TEST"&gt;
        &lt;documentation&gt;DSR3TEST&lt;/documentation&gt;
        &lt;property key="ip" value="10.255.3.133"/&gt;
        &lt;property key="port" value="1521"/&gt;
        &lt;property key="hw"/&gt;
      &lt;/element&gt;
  &lt;/folder&gt;
  </code></pre>
  
  <p>outout html file</p>
  
  <pre><code>&lt;html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
     &lt;body&gt;
        &lt;h2&gt;Technology &amp;amp; Physical&lt;/h2&gt;
        &lt;table&gt;
           &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Text&lt;/th&gt;
              &lt;th&gt;ip&lt;/th&gt;
              &lt;th&gt;port&lt;/th&gt;
              &lt;th&gt;hw&lt;/th&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
              &lt;td&gt;CBS3CVR&lt;/td&gt;
              &lt;td&gt;archimate:Node&lt;/td&gt;
              &lt;td&gt;DSR3CVR&lt;/td&gt;
              &lt;td&gt;10.15.114.24&lt;/td&gt;
              &lt;td&gt;1521&lt;/td&gt;
              &lt;td/&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
              &lt;td&gt;DSR3TEST&lt;/td&gt;
              &lt;td&gt;archimate:Node&lt;/td&gt;
              &lt;td&gt;DSR3TEST&lt;/td&gt;
              &lt;td&gt;10.255.3.133&lt;/td&gt;
              &lt;td&gt;1521&lt;/td&gt;
              &lt;td/&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
              &lt;td&gt;Informatica test&lt;/td&gt;
              &lt;td&gt;archimate:Node&lt;/td&gt;
              &lt;td&gt;Informatica&lt;/td&gt;
              &lt;td&gt;10.11.30.89&lt;/td&gt;
              &lt;td&gt;1521&lt;/td&gt;
              &lt;td/&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
              &lt;td&gt;SMX&lt;/td&gt;
              &lt;td&gt;archimate:Node&lt;/td&gt;
              &lt;td/&gt;
              &lt;td&gt;10.255.2.111&lt;/td&gt;
              &lt;td&gt;8181, 8182, 8184&lt;/td&gt;
              &lt;td/&gt;
           &lt;/tr&gt;
           &lt;tr&gt;
              &lt;td&gt;SMX_U_TEST&lt;/td&gt;
              &lt;td&gt;archimate:Node&lt;/td&gt;
              &lt;td&gt;SMX&lt;/td&gt;
              &lt;td&gt;10.255.2.111&lt;/td&gt;
              &lt;td/&gt;
              &lt;td/&gt;
           &lt;/tr&gt;
         &lt;/table&gt;
      &lt;/body&gt;
    &lt;/html&gt;
  </code></pre>
  
  <p>The number of element and property is unlimited, and the name of the keys may be different.
  I used group by, if you have another decided, tell me. thank you!!!</p>