virtual std::string doEvaluate(const DOM::Node<std::string>& context, const Arabica::XPath::ExecutionContext<std::string>& executionContext) const { DOM::Node<std::string> node; if(baseT::argCount() == 0) node = context; else { Arabica::XPath::NodeSet<std::string> ns = baseT::argAsNodeSet(0, context, executionContext); if(ns.size() == 0) return ""; node = ns.top(); } // if ... std::ostringstream os; os << node.underlying_impl(); return os.str(); } // doEvaluate