diff options
author | Adrian Kummerländer | 2014-04-30 18:48:23 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-04-30 18:48:23 +0200 |
commit | 42a0b31ebc10bea7e205e04c12b590afbcc27b3d (patch) | |
tree | 0545a36ba6288f57db40fe12c4f54af243ea78bf /src/function/read_xml_file.cc | |
parent | ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5 (diff) | |
download | InputXSLT-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.cc | 27 |
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); |