xml_token_t tokenize(const pstring& name) const { xml_token_t token = XML_UNKNOWN_TOKEN; if (!name.empty()) token = m_tokens.get_token(name); return token; }
void orcus_xml::append_sheet(const pstring& name) { if (name.empty()) return; mp_impl->mp_import_factory->append_sheet(name.get(), name.size()); }
void xls_xml_context::characters(const pstring& str, bool transient) { if (str.empty()) return; const xml_token_pair_t& elem = get_current_element(); if (elem.first == NS_xls_xml_ss && elem.second == XML_Data) { switch (m_cur_cell_type) { case ct_string: { if (transient) m_cur_cell_string.push_back(m_pool.intern(str).first); else m_cur_cell_string.push_back(str); } break; case ct_number: { const char* p = str.get(); m_cur_cell_value = to_double(p, p + str.size()); } break; default: ; } } }
length_t to_length(const pstring& str) { length_t ret; if (str.empty()) return ret; const char* p = str.get(); const char* p_start = p; const char* p_end = p_start + str.size(); ret.value = parse_numeric(p, p_end); // TODO: See if this part can be optimized. pstring tail(p, p_end-p); if (tail == "in") ret.unit = length_unit_inch; else if (tail == "cm") ret.unit = length_unit_centimeter; else if (tail == "pt") ret.unit = length_unit_point; return ret; }