From 5f4f3f003e1f08e5495e0fe30fae18eb6029888d Mon Sep 17 00:00:00 2001 From: Adrian Kummerländer Date: Sun, 20 Apr 2014 23:30:25 +0200 Subject: Switched filesystem interaction code to boost::filesystem * while plain read access on files is doesn't require boost::filesystem it will greatly simplify the implementation of external directory traversal functions * it also improves the portability of relative path construction --- src/function/read_xml_file.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/function/read_xml_file.cc') diff --git a/src/function/read_xml_file.cc b/src/function/read_xml_file.cc index be091a0..78f81c4 100644 --- a/src/function/read_xml_file.cc +++ b/src/function/read_xml_file.cc @@ -1,5 +1,7 @@ #include "read_xml_file.h" +#include "boost/filesystem/fstream.hpp" + namespace InputXSLT { FunctionReadXmlFile::FunctionReadXmlFile(const std::string& path): @@ -24,12 +26,19 @@ xalan::XObjectPtr FunctionReadXmlFile::execute( generalError(executionContext, context, locator); } - xalan::XalanDOMString fileName(this->path_.data()); - fileName.append(arguments[0]->str()); + xalan::CharVectorType castHelper; + arguments[0]->str().transcode(castHelper); + + const std::string fileName( + castHelper.begin(), + castHelper.end() + ); + + boost::filesystem::ifstream file(this->path_ / fileName); return executionContext.getXObjectFactory().createNodeSet( this->parser_.parseXMLStream( - xalan::XSLTInputSource(fileName) + xalan::XSLTInputSource(file) ) ); } -- cgit v1.2.3