throws Throwable
  public Value __setField(Env env, String name, String value)    throws Throwable  {    // find Node name    // $xml->foo = "bar"; (NOT $xml["foo"] = "bar";)    NodeList children = _element.getChildNodes();    int length = children.getLength();    if (length == 0)      return NullValue.NULL;    // loop through all children.  If there is more than one    // env.warning    int indexOfFoundChild = -1;    for(int i = 0; i < length; i++) {      if (name.equals(children.item(i).getNodeName())) {        if (indexOfFoundChild != -1) {          env.warning("Cannot assign to an array of nodes (duplicate subnodes or attr detected)");          return NullValue.NULL;        }        indexOfFoundChild = i;      }    }    if (indexOfFoundChild != -1) {      Node child = children.item(indexOfFoundChild);      while (child.hasChildNodes())        child.removeChild(child.getFirstChild());      child.appendChild(_document.createTextNode(value));    }    return NullValue.NULL;  }