aboutsummaryrefslogtreecommitdiff
path: root/src/function/transform.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/function/transform.cc')
-rw-r--r--src/function/transform.cc19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/function/transform.cc b/src/function/transform.cc
index bc71125..1d22399 100644
--- a/src/function/transform.cc
+++ b/src/function/transform.cc
@@ -1,11 +1,11 @@
#include "transform.h"
+#include <xalanc/XercesParserLiaison/FormatterToXercesDOM.hpp>
+
#include <xercesc/dom/DOMDocument.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/dom/DOMElement.hpp>
-#include <sstream>
-
#include "transformation_facade.h"
#include "support/xerces_string_guard.h"
#include "support/dom/result_node_facade.h"
@@ -43,11 +43,11 @@ xercesc::DOMDocument* FunctionTransform::constructDocument(
)
);
- xercesc::DOMNode* const rootNode(
+ xercesc::DOMElement* const rootElement(
domDocument->getDocumentElement()
);
- ResultNodeFacade result(domDocument, rootNode, "transformation");
+ ResultNodeFacade result(domDocument, rootElement, "transformation");
if ( auto transformation = TransformationFacade::try_create(
handleErrors(result),
@@ -56,17 +56,16 @@ xercesc::DOMDocument* FunctionTransform::constructDocument(
this->include_resolver_
) ) {
try {
- std::stringstream targetStream;
+ xalan::FormatterToXercesDOM formatter(
+ domDocument,
+ result.getResultElement()
+ );
transformation->generate(
- targetStream,
+ formatter,
parameterObject
);
- result.setContent(
- targetStream.str()
- );
-
result.setAttribute("result", "success");
}
catch (const ErrorCapacitor::exception& exception) {