aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_directory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/function/read_directory.cc')
-rw-r--r--src/function/read_directory.cc18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/function/read_directory.cc b/src/function/read_directory.cc
index d5357e8..ad82217 100644
--- a/src/function/read_directory.cc
+++ b/src/function/read_directory.cc
@@ -1,29 +1,21 @@
#include "read_directory.h"
-#include <xercesc/dom/DOMDocument.hpp>
-#include <xercesc/dom/DOMImplementation.hpp>
-#include <xercesc/dom/DOMElement.hpp>
-
#include "support/xerces_string_guard.h"
#include "support/dom/result_node_facade.h"
namespace InputXSLT {
-xercesc::DOMDocument* FunctionReadDirectory::constructDocument(
+DomDocumentCache::document_ptr FunctionReadDirectory::constructDocument(
boost::filesystem::path directoryPath) {
- xercesc::DOMDocument* const domDocument(
- xercesc::DOMImplementation::getImplementation()->createDocument(
- nullptr,
- *XercesStringGuard<XMLCh>("content"),
- nullptr
- )
+ DomDocumentCache::document_ptr domDocument(
+ DomDocumentCache::createDocument()
);
xercesc::DOMNode* const rootNode(
domDocument->getDocumentElement()
);
- ResultNodeFacade result(domDocument, rootNode, "directory");
+ ResultNodeFacade result(domDocument.get(), rootNode, "directory");
result.setAttribute("path", directoryPath.string());
if ( boost::filesystem::is_directory(directoryPath) ) {
@@ -34,7 +26,7 @@ xercesc::DOMDocument* FunctionReadDirectory::constructDocument(
FilesystemContext::iterate(
directoryPath,
[&domDocument, &resultNode](const boost::filesystem::path& p) {
- ResultNodeFacade result(domDocument, resultNode, "entry");
+ ResultNodeFacade result(domDocument.get(), resultNode, "entry");
switch ( boost::filesystem::status(p).type() ) {
case boost::filesystem::regular_file: {