aboutsummaryrefslogtreecommitdiff
path: root/src/function/read_xml_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_xml_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_xml_file.cc')
-rw-r--r--src/function/read_xml_file.cc35
1 files changed, 10 insertions, 25 deletions
diff --git a/src/function/read_xml_file.cc b/src/function/read_xml_file.cc
index 52f7735..7b54732 100644
--- a/src/function/read_xml_file.cc
+++ b/src/function/read_xml_file.cc
@@ -40,48 +40,33 @@ xalan::XObjectPtr FunctionReadXmlFile::execute(
);
if ( boost::filesystem::is_regular_file(filePath) ) {
- xercesc::DOMElement* const contentNode(
- domDocument->createElement(*XercesStringGuard("content"))
+ xercesc::DOMElement* const resultNode(
+ domDocument->createElement(*XercesStringGuard("result"))
+ );
+
+ resultNode->setAttribute(
+ *XercesStringGuard("name"),
+ *XercesStringGuard(filePath.filename().string())
);
xercesc::XercesDOMParser parser;
boost::filesystem::ifstream file(filePath);
parser.parse(xalan::XSLTInputSource(file));
- xercesc::DOMNode* const contentTreeNode(
+ xercesc::DOMNode* const resultTreeNode(
domDocument->importNode(
parser.getDocument()->getDocumentElement(),
true
)
);
- xercesc::DOMElement* const resultNode(
- domDocument->createElement(*XercesStringGuard("status"))
- );
-
- xercesc::DOMText* const resultTextNode(
- domDocument->createTextNode(
- *XercesStringGuard("successful")
- )
- );
-
- contentNode->appendChild(contentTreeNode);
- resultNode->appendChild(resultTextNode);
-
- rootNode->appendChild(contentNode);
+ resultNode->appendChild(resultTreeNode);
rootNode->appendChild(resultNode);
} else {
xercesc::DOMElement* const resultNode(
- domDocument->createElement(*XercesStringGuard("status"))
- );
-
- xercesc::DOMText* const resultTextNode(
- domDocument->createTextNode(
- *XercesStringGuard("error")
- )
+ domDocument->createElement(*XercesStringGuard("error"))
);
- resultNode->appendChild(resultTextNode);
rootNode->appendChild(resultNode);
}
}