String value = Expr._string(context, ret);
String value; if (ret instanceof Collection) { StringBuffer buf = new StringBuffer(); for (Iterator i = ((Collection) ret).iterator(); i.hasNext(); ) { Node node = (Node) i.next(); buf.append(Expr.stringValue(node)); } value = buf.toString(); } else { value = Expr._string(context, ret); }
  void doApply(Stylesheet stylesheet, QName mode,             Node context, int pos, int len,             Node parent, Node nextSibling)    throws TransformerException  {    Object ret = select.evaluate(context, pos, len);    String value = Expr._string(context, ret);    //System.err.println("value-of: "+context+" "+ select + " -> "+ value);    if (value != null && value.length() > 0)      {        Document doc = (parent instanceof Document) ?          (Document) parent : parent.getOwnerDocument();        Text textNode = doc.createTextNode(value);        if (disableOutputEscaping)          {            textNode.setUserData("disable-output-escaping", "yes", stylesheet);          }        if (nextSibling != null)          {            parent.insertBefore(textNode, nextSibling);          }        else          {            parent.appendChild(textNode);          }      }    // value-of doesn't process children    if (next != null)      {        next.apply(stylesheet, mode,                   context, pos, len,                   parent, nextSibling);      }  }