sc/source/filter/orcus/xmlcontext.cxx | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-)
New commits: commit a4c588ca5b5bbce9da8bd351ff96ef99cb3662c6 Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Wed Nov 21 12:01:51 2012 -0500 Display XML namespace IDs in the tree. Change-Id: I7223b6ac750a5c96ce9638b490eeae109ed854ef diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx index cc8eccd..86865cd 100644 --- a/sc/source/filter/orcus/xmlcontext.cxx +++ b/sc/source/filter/orcus/xmlcontext.cxx @@ -31,13 +31,33 @@ ScOrcusXMLTreeParam::EntryData& setUserDataToEntry( return rStore.back(); } +OUString toString(const orcus::xml_structure_tree::entity_name& entity, const orcus::xml_structure_tree::walker& walker) +{ + OUStringBuffer aBuf; + if (entity.ns) + { + // Namespace exists. Namespaces are displayed as ns0, ns1, ns2, .... + size_t index = walker.get_xmlns_index(entity.ns); + if (index == orcus::xml_structure_tree::walker::index_not_found) + // This namespace doesn't exist in this context. Something has gone wrong. + aBuf.append("???"); + else + { + aBuf.append("ns"); + aBuf.append(static_cast<sal_Int32>(index)); + } + aBuf.append(':'); + } + aBuf.append(OUString(entity.name.get(), entity.name.size(), RTL_TEXTENCODING_UTF8)); + return aBuf.makeStringAndClear(); +} + void populateTree( SvTreeListBox& rTreeCtrl, orcus::xml_structure_tree::walker& rWalker, const orcus::xml_structure_tree::entity_name& rElemName, bool bRepeat, SvTreeListEntry* pParent, ScOrcusXMLTreeParam& rParam) { - OUString aName(rElemName.name.get(), rElemName.name.size(), RTL_TEXTENCODING_UTF8); - SvTreeListEntry* pEntry = rTreeCtrl.InsertEntry(aName, pParent); + SvTreeListEntry* pEntry = rTreeCtrl.InsertEntry(toString(rElemName, rWalker), pParent); if (!pEntry) // Can this ever happen!? return; @@ -65,8 +85,7 @@ void populateTree( for (; it != itEnd; ++it) { orcus::xml_structure_tree::entity_name aAttrName = *it; - SvTreeListEntry* pAttr = rTreeCtrl.InsertEntry( - OUString(aAttrName.name.get(), aAttrName.name.size(), RTL_TEXTENCODING_UTF8), pEntry); + SvTreeListEntry* pAttr = rTreeCtrl.InsertEntry(toString(aAttrName, rWalker), pEntry); if (!pAttr) continue; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits