diff options
author | Adrian Kummerländer | 2014-04-29 19:24:58 +0200 |
---|---|---|
committer | Adrian Kummerländer | 2014-04-29 19:24:58 +0200 |
commit | ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5 (patch) | |
tree | fb8a7851cf2bf5fa4eac3420d218745cf0930756 /src/function/read_file.cc | |
parent | d573e3160131e6776a9c148ca3a6754533378a76 (diff) | |
download | InputXSLT-ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5.tar InputXSLT-ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5.tar.gz InputXSLT-ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5.tar.bz2 InputXSLT-ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5.tar.lz InputXSLT-ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5.tar.xz InputXSLT-ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5.tar.zst InputXSLT-ddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5.zip |
Simplified external function result node set
* all functions return a single "error" node in the case that something went wrong
* otherwise they return one or more "result" nodes that contain the function results and may be distinguished by one or more attributes
* this makes handling the return values easier and more pleasing to the eye as not everything has to be prefixed by "self::*"
* updated test transformation accordingly
Diffstat (limited to 'src/function/read_file.cc')
-rw-r--r-- | src/function/read_file.cc | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/src/function/read_file.cc b/src/function/read_file.cc index cfbec59..83456c6 100644 --- a/src/function/read_file.cc +++ b/src/function/read_file.cc @@ -48,43 +48,28 @@ xalan::XObjectPtr FunctionReadFile::execute( (std::istreambuf_iterator<char>()) ); - xercesc::DOMElement* const contentNode( - domDocument->createElement(*XercesStringGuard("content")) - ); - - xercesc::DOMText* const contentTextNode( - domDocument->createTextNode( - *XercesStringGuard(fileContent) - ) + xercesc::DOMElement* const resultNode( + domDocument->createElement(*XercesStringGuard("result")) ); - xercesc::DOMElement* const resultNode( - domDocument->createElement(*XercesStringGuard("status")) + resultNode->setAttribute( + *XercesStringGuard("name"), + *XercesStringGuard(filePath.filename().string()) ); xercesc::DOMText* const resultTextNode( domDocument->createTextNode( - *XercesStringGuard("successful") + *XercesStringGuard(fileContent) ) ); - contentNode->appendChild(contentTextNode); resultNode->appendChild(resultTextNode); - - rootNode->appendChild(contentNode); rootNode->appendChild(resultNode); } else { xercesc::DOMElement* const resultNode( - domDocument->createElement(*XercesStringGuard("status")) + domDocument->createElement(*XercesStringGuard("error")) ); - xercesc::DOMText* const resultTextNode( - domDocument->createTextNode( - *XercesStringGuard("error") - ) - ); - - resultNode->appendChild(resultTextNode); rootNode->appendChild(resultNode); } } |