From 5769d12d5618d9a8bd084915febc6388e84cec26 Mon Sep 17 00:00:00 2001 From: cantor Date: Wed, 17 Oct 2007 04:10:02 +0000 Subject: [PATCH] Fixed bug causing duplication of text content. git-svn-id: https://svn.middleware.georgetown.edu/cpp-xmltooling/trunk@399 de75baf8-a10c-0410-a50a-987c0e22f00f --- xmltooling/io/AbstractXMLObjectMarshaller.cpp | 15 +++++++-------- xmltoolingtest/data/SimpleXMLObjectWithContent.xml | Bin 290 -> 288 bytes 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/xmltooling/io/AbstractXMLObjectMarshaller.cpp b/xmltooling/io/AbstractXMLObjectMarshaller.cpp index 500f431..0c87aff 100644 --- a/xmltooling/io/AbstractXMLObjectMarshaller.cpp +++ b/xmltooling/io/AbstractXMLObjectMarshaller.cpp @@ -316,23 +316,22 @@ void AbstractXMLObjectMarshaller::marshallContent( { m_log.debug("marshalling text and child elements for XMLObject"); - const XMLCh* val; unsigned int pos=0; + const XMLCh* val = getTextContent(pos); + if (val && *val) + domElement->appendChild(domElement->getOwnerDocument()->createTextNode(val)); + const list& children=getOrderedChildren(); for (list::const_iterator i=children.begin(); i!=children.end(); ++i) { - val = getTextContent(pos); - if (val && *val) - domElement->appendChild(domElement->getOwnerDocument()->createTextNode(val)); if (*i) { #ifndef XMLTOOLING_NO_XMLSEC (*i)->marshall(domElement,NULL,credential); #else (*i)->marshall(domElement); #endif - ++pos; + val = getTextContent(++pos); + if (val && *val) + domElement->appendChild(domElement->getOwnerDocument()->createTextNode(val)); } } - val = getTextContent(pos); - if (val && *val) - domElement->appendChild(domElement->getOwnerDocument()->createTextNode(val)); } diff --git a/xmltoolingtest/data/SimpleXMLObjectWithContent.xml b/xmltoolingtest/data/SimpleXMLObjectWithContent.xml index d6df34555516c777c53b24c1662f80eb624581db..3bf4dcfa0ef427684c4a80b2c33162aed2523078 100644 GIT binary patch delta 9 QcmZ3)w18>C&55_&0TdeqV*mgE delta 11 ScmZ3$w1{cKO-6-@H#`6t_XL6f -- 2.1.4