title: Why does XSLT output all text by default?
body: <p>Hi I had performed a transformation which drops a tag if it is null.</p>
  
  <p>I wanted to check whether my transformation is working fine, so instead of checking it manually, I wrote one more XSLT code which just checks the presence of that particular tag in the OUTPUT XML, if it is null, then the second XSLT should output a text "FOUND". (I don't actually need some XML kind of output but I am just using XSLT for searching.)</p>
  
  <p>When I tried with this XSL code ::</p>
  
  <pre><code>&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
    &lt;xsl:template match="/SiebelMessage//SuppressCalendar[.!='']"&gt;
        FOUND
    &lt;/xsl:template&gt;
  &lt;/xsl:stylesheet&gt;
  </code></pre>
  
  <p>It outputs all the TEXT DATA that is present in the XML file,</p>
  
  <p>to avoid that, I had to write this code::</p>
  
  <pre><code>&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
    &lt;xsl:template match="/SiebelMessage//SuppressCalendar[.!='']"&gt;
        FOUND
    &lt;/xsl:template&gt;
    &lt;xsl:template match="text()"/&gt;
  &lt;/xsl:stylesheet&gt;
  </code></pre>
  
  <p>why did the former code outputs TEXT, why should I insist XSL to ignore all other text? is that the behavior of all XML parsers or only of my own (I am using msxml parser).</p>