code: public void execute(TransformerImpl transformer) throws TransformerException
    {
  
      XPathContext xctxt = transformer.getXPathContext();
      SerializationHandler rth = transformer.getResultTreeHandler();
  
      try
      {
        // Optimize for "."
          xctxt.pushNamespaceContext(this);
  
          int current = xctxt.getCurrentNode();
  
          xctxt.pushCurrentNodeAndExpression(current, current);
  
          if (m_disableOutputEscaping)
            rth.processingInstruction(
              javax.xml.transform.Result.PI_DISABLE_OUTPUT_ESCAPING, "");
  
          try
          {
            Expression expr = m_selectExpression.getExpression();
  
              expr.executeCharsToContentHandler(xctxt, rth);
          }
          finally
          {
            if (m_disableOutputEscaping)
              rth.processingInstruction(
                javax.xml.transform.Result.PI_ENABLE_OUTPUT_ESCAPING, "");
  
            xctxt.popNamespaceContext();
            xctxt.popCurrentNodeAndExpression();
          }
      }
      catch (SAXException se)
      {
        throw new TransformerException(se);
      }
      catch (RuntimeException re) {
      	TransformerException te = new TransformerException(re);
      	te.setLocator(this);
      	throw te;
      }
    }
docs: Execute the string expression and copy the text to the
  result tree.
  The required select attribute is an expression; this expression
  is evaluated and the resulting object is converted to a string
  as if by a call to the string function. The string specifies
  the string-value of the created text node. If the string is
  empty, no text node will be created. The created text node will
  be merged with any adjacent text nodes.
  @see <a href="http://www.w3.org/TR/xslt#value-of">value-of in XSLT Specification</a>
  
  @param transformer non-null reference to the the current transform-time state.
  
  @throws TransformerException