summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2013-12-05 01:35:52 +0000
committerjhurst <>2013-12-05 01:35:52 +0000
commitece36546e5233fac27fed566802a9fec2bc3ef8c (patch)
treea3dfdb42c517beb0bbb5c214df1ff1b22cd5ebce /src
parent4dcacd557953d6976a6fd0fd389e3aeb95b38c7f (diff)
allow suppression of xml formatting spaces
Diffstat (limited to 'src')
-rw-r--r--src/KM_xml.cpp28
-rw-r--r--src/KM_xml.h5
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; }