diff options
| author | jhurst <jhurst@cinecert.com> | 2013-12-05 01:35:52 +0000 |
|---|---|---|
| committer | jhurst <> | 2013-12-05 01:35:52 +0000 |
| commit | ece36546e5233fac27fed566802a9fec2bc3ef8c (patch) | |
| tree | a3dfdb42c517beb0bbb5c214df1ff1b22cd5ebce /src | |
| parent | 4dcacd557953d6976a6fd0fd389e3aeb95b38c7f (diff) | |
allow suppression of xml formatting spaces
Diffstat (limited to 'src')
| -rw-r--r-- | src/KM_xml.cpp | 28 | ||||
| -rw-r--r-- | src/KM_xml.h | 5 |
2 files changed, 22 insertions, 11 deletions
diff --git a/src/KM_xml.cpp b/src/KM_xml.cpp index 8f41f9c..121f0a6 100644 --- a/src/KM_xml.cpp +++ b/src/KM_xml.cpp @@ -186,10 +186,10 @@ Kumu::XMLElement::AddComment(const char* value) // void -Kumu::XMLElement::Render(std::string& outbuf) const +Kumu::XMLElement::Render(std::string& outbuf, const bool& pretty) const { outbuf = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; - RenderElement(outbuf, 0); + RenderElement(outbuf, 0, pretty); } // @@ -202,15 +202,18 @@ add_spacer(std::string& outbuf, i32_t depth) // void -Kumu::XMLElement::RenderElement(std::string& outbuf, ui32_t depth) const +Kumu::XMLElement::RenderElement(std::string& outbuf, const ui32_t& depth, const bool& pretty) const { - add_spacer(outbuf, depth); + if ( pretty ) + { + add_spacer(outbuf, depth); + } outbuf += "<"; outbuf += m_Name; // render attributes - for ( Attr_i i = m_AttrList.begin(); i != m_AttrList.end(); i++ ) + for ( Attr_i i = m_AttrList.begin(); i != m_AttrList.end(); ++i ) { outbuf += " "; outbuf += (*i).name; @@ -228,12 +231,19 @@ Kumu::XMLElement::RenderElement(std::string& outbuf, ui32_t depth) const // render body if ( m_Body.length() > 0 ) - outbuf += m_Body; + { + outbuf += m_Body; + } - for ( Elem_i i = m_ChildList.begin(); i != m_ChildList.end(); i++ ) - (*i)->RenderElement(outbuf, depth + 1); + for ( Elem_i i = m_ChildList.begin(); i != m_ChildList.end(); ++i ) + { + (*i)->RenderElement(outbuf, depth + 1, pretty); + } - add_spacer(outbuf, depth); + if ( pretty ) + { + add_spacer(outbuf, depth); + } } else if ( m_Body.length() > 0 ) { diff --git a/src/KM_xml.h b/src/KM_xml.h index 80db74b..5d499e5 100644 --- a/src/KM_xml.h +++ b/src/KM_xml.h @@ -112,8 +112,9 @@ namespace Kumu XMLElement* AddChildWithContent(const char* name, const std::string& value); XMLElement* AddChildWithPrefixedContent(const char* name, const char* prefix, const char* value); void AddComment(const char* value); - void Render(std::string&) const; - void RenderElement(std::string& outbuf, ui32_t depth) const; + void Render(std::string& str) const { Render(str, true); } + void Render(std::string&, const bool& pretty) const; + void RenderElement(std::string& outbuf, const ui32_t& depth, const bool& pretty) const; // querying inline const std::string& GetBody() const { return m_Body; } |
