diff options
-rw-r--r-- | src/function/read_xml_file.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/function/read_xml_file.cc b/src/function/read_xml_file.cc index 2fa4f13..cfa216c 100644 --- a/src/function/read_xml_file.cc +++ b/src/function/read_xml_file.cc @@ -1,28 +1,26 @@ #include "read_xml_file.h" -#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/filesystem/fstream.hpp" +#include <xercesc/framework/LocalFileInputSource.hpp> #include "support/xerces_string_guard.h" #include "support/dom/result_node_facade.h" namespace { -using InputXSLT::XercesStringGuard; - inline xercesc::DOMNode* importDocumentElement( - const boost::filesystem::path& filePath, + const std::string& filePath, xercesc::DOMDocument* const domDocument ) { + const xercesc::LocalFileInputSource file( + *InputXSLT::XercesStringGuard<XMLCh>(filePath.data()) + ); + xercesc::XercesDOMParser parser; - boost::filesystem::ifstream file(filePath); - parser.parse(xalan::XSLTInputSource(file)); + parser.parse(file); return domDocument->importNode( parser.getDocument()->getDocumentElement(), @@ -67,7 +65,7 @@ xercesc::DOMDocument* FunctionReadXmlFile::constructDocument( result.setAttribute("result", "success"); result.setContent( - importDocumentElement(filePath, domDocument) + importDocumentElement(filePath.string(), domDocument) ); } else { result.setAttribute("result", "error"); |