diff options
Diffstat (limited to 'src/function/read_xml_file.cc')
-rw-r--r-- | src/function/read_xml_file.cc | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/function/read_xml_file.cc b/src/function/read_xml_file.cc index 65989b2..e4d256d 100644 --- a/src/function/read_xml_file.cc +++ b/src/function/read_xml_file.cc @@ -61,11 +61,21 @@ xercesc::DOMDocument* FunctionReadXmlFile::constructDocument( result.setAttribute("path", filePath.string()); if ( boost::filesystem::is_regular_file(filePath) ) { - result.setAttribute("result", "success"); + try { + result.setContent( + importDocumentElement(filePath.string(), domDocument) + ); - result.setContent( - importDocumentElement(filePath.string(), domDocument) - ); + result.setAttribute("result", "success"); + } + catch ( const xercesc::DOMException& exception ) { + result.setAttribute("result", "error"); + + result.setValueNode( + "error", + *XercesStringGuard<char>(exception.msg) + ); + } } else { result.setAttribute("result", "error"); } |