code: EList evaluateXPathNodeListNS(Node contextNode, NamespaceContext namespaceContext, String expression, Object... args) {
  		if (args.length > 0) {
  			expression = Strings.format(expression, args);
  		}
  
  		NodeList nodeList = null;
  		try {
  			XPath xpath = XPathFactory.newInstance().newXPath();
  			if (namespaceContext != null) {
  				xpath.setNamespaceContext(namespaceContext);
  			}
  			Object result = xpath.evaluate(expression, contextNode, XPathConstants.NODESET);
  			if (result != null) {
  				nodeList = (NodeList) result;
  			}
  		} catch (XPathExpressionException e) {
  			throw new DomException(e);
  		}
  
  		if (nodeList == null) {
  			nodeList = EMPTY_NODE_LIST;
  		}
  		return createEList(nodeList);
  	}
docs: Name space aware variant of {@link #evaluateXPathNodeList(Node, String, Object...)}.
  
  @param contextNode evaluation context node,
  @param namespaceContext name space context maps prefixes to name space URIs,
  @param expression XPath expression with optional formatting tags,
  @param args optional formatting arguments.
  @return list of result elements, possible empty.