title: Excel XML: XLST Transformation problem with microsoft namespace?
body: <p>A simple Workbook/Worksheet XML file</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version=&quot;1.0&quot;?&gt;
  &lt;Workbook&gt;
    &lt;Worksheet&gt;
    &lt;Table&gt;
     &lt;Row&gt;
      &lt;Cell&gt;&lt;Data&gt;ID10065&lt;/Data&gt;&lt;/Cell&gt;
     &lt;/Row&gt;
    &lt;/Table&gt;
   &lt;/Worksheet&gt;
  &lt;/Workbook&gt;
  </code></pre>
  <p>performing a simple and a complex XSLT Transformation:</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
  &lt;xsl:transform version=&quot;2.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;&gt;
      &lt;xsl:output omit-xml-declaration=&quot;yes&quot; encoding=&quot;UTF-8&quot; indent=&quot;yes&quot;/&gt;
      &lt;xsl:strip-space elements=&quot;*&quot;/&gt;
      &lt;xsl:template match=&quot;/&quot;&gt;
          &lt;simple&gt;
              &lt;xsl:value-of select=&quot;/Workbook/Worksheet/Table/Row/Cell/Data&quot;/&gt;
          &lt;/simple&gt;
          &lt;complex&gt;
              &lt;xsl:for-each select=&quot;*[starts-with(name(), 'Workbook')]/*[starts-with(name(), 'Worksheet')]/*[starts-with(name(), 'Table')]/*[starts-with(name(), 'Row')]/*[position()=1 and starts-with(name(), 'Cell')]&quot;&gt;
                  &lt;xsl:value-of select=&quot;.&quot;/&gt;
              &lt;/xsl:for-each&gt;
          &lt;/complex&gt;
      &lt;/xsl:template&gt;
  &lt;/xsl:transform&gt;
  </code></pre>
  <p>Result is a expected:</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;simple&gt;ID10065&lt;/simple&gt;
  &lt;complex&gt;ID10065&lt;/complex&gt;
  </code></pre>
  <p><strong>Problem:</strong></p>
  <p>If I save an Excel Worksheet as a XML file, the structure is the same (with microsoft office namespace extensions)</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version=&quot;1.0&quot;?&gt;
  &lt;?mso-application progid=&quot;Excel.Sheet&quot;?&gt;
  &lt;Workbook xmlns=&quot;urn:schemas-microsoft-com:office:spreadsheet&quot;
   xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot;
   xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot;
   xmlns:ss=&quot;urn:schemas-microsoft-com:office:spreadsheet&quot;
   xmlns:html=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;
    &lt;Worksheet ss:Name=&quot;Tabelle1&quot;&gt;
    &lt;Table ss:ExpandedColumnCount=&quot;4&quot; ss:ExpandedRowCount=&quot;1&quot; x:FullColumns=&quot;1&quot;
     x:FullRows=&quot;1&quot; ss:DefaultColumnWidth=&quot;65&quot; ss:DefaultRowHeight=&quot;16&quot;&gt;
     &lt;Row&gt;
      &lt;Cell&gt;&lt;Data ss:Type=&quot;String&quot;&gt;ID10065&lt;/Data&gt;&lt;/Cell&gt;
     &lt;/Row&gt;
    &lt;/Table&gt;
   &lt;/Worksheet&gt;
  &lt;/Workbook&gt;
  </code></pre>
  <p>If I do the same XSLT transformation, the result is now only</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;complex&gt;ID10065&lt;/complex&gt;
  </code></pre>
  <p>Why isn't the &quot;<em>simple</em>&quot; part working with excel worksheets?</p>
  <p>Frank</p>