aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_xml_file.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-30 18:48:23 +0200
committerAdrian Kummerländer2014-04-30 18:48:23 +0200
commit42a0b31ebc10bea7e205e04c12b590afbcc27b3d (patch)
tree0545a36ba6288f57db40fe12c4f54af243ea78bf /src/function/read_xml_file.cc
parentddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5 (diff)
downloadInputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.gz
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.bz2
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.lz
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.xz
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.tar.zst
InputXSLT-42a0b31ebc10bea7e205e04c12b590afbcc27b3d.zip
Moved file reading functionality into local functions
* it was moved into functions local to the respective compilation unit to improve readability ** splits DOM tree construction logic from the actual purpose of the external function
Diffstat (limited to 'src/function/read_xml_file.cc')
-rw-r--r--src/function/read_xml_file.cc27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/function/read_xml_file.cc b/src/function/read_xml_file.cc
index 7b54732..bf9ec2e 100644
--- a/src/function/read_xml_file.cc
+++ b/src/function/read_xml_file.cc
@@ -10,6 +10,24 @@
#include "support/xerces_string_guard.h"
+namespace {
+
+inline xercesc::DOMNode* importDocumentElement(
+ const boost::filesystem::path& filePath,
+ xercesc::DOMDocument* const domDocument
+) {
+ xercesc::XercesDOMParser parser;
+ boost::filesystem::ifstream file(filePath);
+ parser.parse(xalan::XSLTInputSource(file));
+
+ return domDocument->importNode(
+ parser.getDocument()->getDocumentElement(),
+ true
+ );
+}
+
+}
+
namespace InputXSLT {
FunctionReadXmlFile::FunctionReadXmlFile(const FilesystemContext& context):
@@ -49,15 +67,8 @@ xalan::XObjectPtr FunctionReadXmlFile::execute(
*XercesStringGuard(filePath.filename().string())
);
- xercesc::XercesDOMParser parser;
- boost::filesystem::ifstream file(filePath);
- parser.parse(xalan::XSLTInputSource(file));
-
xercesc::DOMNode* const resultTreeNode(
- domDocument->importNode(
- parser.getDocument()->getDocumentElement(),
- true
- )
+ importDocumentElement(filePath, domDocument)
);
resultNode->appendChild(resultTreeNode);