aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_file.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-04-29 19:24:58 +0200
committerAdrian Kummerländer2014-04-29 19:24:58 +0200
commitddfe25807ef90ddd3d10fd4532875ffdb5d5e9c5 (patch)
treefb8a7851cf2bf5fa4eac3420d218745cf0930756 /src/function/read_file.cc
parentd573e3160131e6776a9c148ca3a6754533378a76 (diff)
downloadInputXSLT-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.cc29
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);
}
}