diff options
Diffstat (limited to 'src/function/external_text_formatter.cc')
-rw-r--r-- | src/function/external_text_formatter.cc | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/function/external_text_formatter.cc b/src/function/external_text_formatter.cc index e7ab1a2..a86c71b 100644 --- a/src/function/external_text_formatter.cc +++ b/src/function/external_text_formatter.cc @@ -2,9 +2,6 @@ #include <xalanc/XSLT/XSLTInputSource.hpp> -#include <xercesc/dom/DOMDocument.hpp> -#include <xercesc/dom/DOMImplementation.hpp> -#include <xercesc/dom/DOMElement.hpp> #include <xercesc/parsers/XercesDOMParser.hpp> #include <boost/process.hpp> @@ -42,16 +39,12 @@ inline xercesc::DOMNode* importDocumentElement( namespace InputXSLT { -xercesc::DOMDocument* FunctionExternalTextFormatter::constructDocument( +DomDocumentCache::document_ptr FunctionExternalTextFormatter::constructDocument( boost::filesystem::path formatterPath, std::string stdinText ) { - xercesc::DOMDocument* const domDocument( - xercesc::DOMImplementation::getImplementation()->createDocument( - nullptr, - *XercesStringGuard<XMLCh>("content"), - nullptr - ) + DomDocumentCache::document_ptr domDocument( + DomDocumentCache::createDocument() ); xercesc::DOMNode* const rootNode( @@ -78,14 +71,17 @@ xercesc::DOMDocument* FunctionExternalTextFormatter::constructDocument( boost::process::status status = formatterProcess.wait(); - ResultNodeFacade result(domDocument, rootNode, "output"); + ResultNodeFacade result(domDocument.get(), rootNode, "output"); result.setAttribute("formatter", formatterPath.filename().string()); result.setAttribute("code", std::to_string(status.exit_status())); if ( status.exited() ) { try { result.setContent( - importDocumentElement(outputStream, domDocument)->getChildNodes() + importDocumentElement( + outputStream, + domDocument.get() + )->getChildNodes() ); result.setAttribute("result", "success"); |