if(contextSequence.getLength() > 0 && contextSequence.getItemType() == Type.NODE) n = ((NodeSet)contextSequence).item(0);
if(contextSequence.getLength() > 0) item = contextSequence.itemAt(0);
	public Sequence eval(Sequence contextSequence, Item contextItem) throws XPathException {			Node n = null;			if(contextItem != null)				contextSequence = contextItem.toSequence();			if(getArgumentCount() > 0) {				NodeSet result = getArgument(0).eval(contextSequence).toNodeSet();				if(result.getLength() > 0)					n = result.item(0);			} else {				if(contextSequence.getLength() > 0 && contextSequence.getItemType() == Type.NODE)					n = ((NodeSet)contextSequence).item(0);			}			if(n != null) {				switch(n.getNodeType()) {					case Node.ELEMENT_NODE:					case Node.ATTRIBUTE_NODE:						return new StringValue(n.getNodeName());					case Node.PROCESSING_INSTRUCTION_NODE:						return new StringValue(((ProcessingInstruction)n).getTarget());					default:						return new StringValue("");				}			} 			return new StringValue("");		}