string event_t::find_action_attribute(const string &key, const action_t &a, bool exc) { string value = a.attr(key) ; if(value.empty()) value = attr(key) ; if(value.empty() && exc) throw event_exception(string("empty attribute '")+key+"'") ; return value ; }