title: Display elements and respective value in XSLT
body: <p>I am XSLT beginner, my requirement is getting element and its respective value in table format, I tried but I did not get the expectation, Kindly suggest solution for my requirement.</p>
  
  <p>My input XML is</p>
  
  <pre><code>&lt;group&gt;
  &lt;elementgroup1&gt;
  &lt;element1&gt;value1&lt;/element1&gt;
  &lt;element2/&gt;
  &lt;element3&gt;value3&lt;/element3&gt;
  &lt;/elementgroup1&gt;
  &lt;elementgroup2&gt;
  &lt;elementsubgroup2&gt;
  &lt;element4&gt;value4&lt;/element4&gt;
  &lt;element5&gt;value5&lt;/element5&gt;
  &lt;/elementsubgroup2&gt;
  &lt;/elementgroup2&gt;
  &lt;/group&gt;
  </code></pre>
  
  <p>my xslt is</p>
  
  <pre><code> &lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      exclude-result-prefixes="xs"
      version="2.0"&gt;
      &lt;xsl:template match="/"&gt;
  &lt;xsl:element name="table"&gt;
      &lt;xsl:attribute name="border" select="'1'"/&gt;
      &lt;xsl:element name="tr"&gt;
          &lt;xsl:element name="th"&gt;XML Viewer&lt;/xsl:element&gt;
      &lt;/xsl:element&gt;
      &lt;xsl:for-each select="/group//*"&gt; 
          &lt;xsl:call-template name="mytemplate"/&gt; 
      &lt;/xsl:for-each&gt; 
  &lt;/xsl:element&gt;
  &lt;/xsl:template&gt;
  &lt;xsl:template name="mytemplate"&gt;
      &lt;xsl:element name="tr"&gt;
          &lt;xsl:element name="td"&gt;
              &lt;xsl:value-of select="name()"&gt;&lt;/xsl:value-of&gt;
          &lt;/xsl:element&gt;
          &lt;xsl:for-each select="child::*"&gt; 
          &lt;xsl:element name="td"&gt;
              &lt;xsl:value-of select="."&gt;&lt;/xsl:value-of&gt;
          &lt;/xsl:element&gt;
          &lt;/xsl:for-each&gt;
      &lt;/xsl:element&gt;
  /xsl:template&gt;
  &lt;/xsl:stylesheet&gt;
  </code></pre>
  
  <p>My required output</p>
  
  <pre><code>&lt;table border="1"&gt;
  &lt;tr&gt;
  &lt;th&gt;
  Output
  &lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td&gt;
  group
  &lt;/td&gt;
  &lt;td/&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td&gt;
  elementgroup1
  &lt;/td&gt;
  &lt;td/&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td&gt;
  element1
  &lt;/td&gt;
  &lt;td&gt;
  value1
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
  &lt;td&gt;
  element2
  &lt;/td&gt;
  &lt;td/&gt;
  &lt;/tr&gt;
  &lt;td&gt;
  element3
  &lt;/td&gt;
  &lt;td&gt;
  value3
  &lt;/td&gt;
  &lt;/tr&gt;
  &lt;/table&gt;
  </code></pre>
  
  <p>display output
  Output should be in table format, please see below</p>
  
  <pre><code>Output
  group   
  elementgroup1   
  element1    value1
  element2    
  element3    value3
  .
  .
  .
  go on till end
  </code></pre>