aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_xml_file.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-20 23:30:25 +0200
committerAdrian Kummerländer2014-04-20 23:30:25 +0200
commit5f4f3f003e1f08e5495e0fe30fae18eb6029888d (patch)
tree3ede7d6c8f0cb6887fdecf635cc4757d3d0ec9b5 /src/function/read_xml_file.cc
parentab840f41154f01d85fec769da693035149689c39 (diff)
downloadInputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar
InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.gz
InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.bz2
InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.lz
InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.xz
InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.tar.zst
InputXSLT-5f4f3f003e1f08e5495e0fe30fae18eb6029888d.zip
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
Diffstat (limited to 'src/function/read_xml_file.cc')
-rw-r--r--src/function/read_xml_file.cc15
1 files changed, 12 insertions, 3 deletions
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)
)
);
}