#include <XmlTools.hpp>
Static Public Member Functions | |
static xsd::cxx::xml::dom::auto_ptr < xercesc::DOMDocument > | ReadXmlFile (const std::string &rFileName, const ::xsd::cxx::tree::properties< char > &rProps) |
static void | Finalize () |
static xsd::cxx::xml::dom::auto_ptr < xercesc::DOMDocument > | ReadFileToDomDocument (const std::string &rFileName,::xsd::cxx::xml::error_handler< char > &rErrorHandler, const ::xsd::cxx::tree::properties< char > &rProps) |
static void | PrintNode (const std::string &rMsg, xercesc::DOMNode *pNode, bool showChildren=false) |
static xercesc::DOMElement * | SetNamespace (xercesc::DOMDocument *pDocument, xercesc::DOMElement *pElement, const std::string &rNamespace) |
static xercesc::DOMElement * | SetNamespace (xercesc::DOMDocument *pDocument, xercesc::DOMElement *pElement, const XMLCh *pNamespace) |
static void | WrapContentInElement (xercesc::DOMDocument *pDocument, xercesc::DOMElement *pElement, const XMLCh *pNewElementLocalName) |
static std::vector < xercesc::DOMElement * > | GetChildElements (xercesc::DOMElement *pElement) |
static std::vector < xercesc::DOMElement * > | FindElements (xercesc::DOMElement *pContextElement, const std::string &rPath) |
static void | FindElements (xercesc::DOMElement *pContextElement, const std::vector< std::string > &rNames, std::vector< xercesc::DOMElement * > &rResults, unsigned depth=0) |
static std::string | EscapeSpaces (const std::string &rPath) |
Classes | |
class | Finalizer |
Definition at line 61 of file XmlTools.hpp.
xsd::cxx::xml::dom::auto_ptr< xercesc::DOMDocument > XmlTools::ReadXmlFile | ( | const std::string & | rFileName, | |
const ::xsd::cxx::tree::properties< char > & | rProps | |||
) | [static] |
Read an XML file into a DOM document, turning parsing errors into Chaste Exceptions. Handles initialising the Xerces runtime.
rFileName | the file to read | |
rProps | properties that specify fixed schema locations, if wanted |
Definition at line 48 of file XmlTools.cpp.
References EXCEPTION, Finalize(), and ReadFileToDomDocument().
Referenced by HeartConfig::ReadFile().
void XmlTools::Finalize | ( | ) | [static] |
Must be called after you have finished working with a document returned by the ReadXmlFile methods. An alternative is to instantiate
XmlTools::Finalizer finalizer(false);
Definition at line 97 of file XmlTools.cpp.
Referenced by ReadXmlFile(), and XmlTools::Finalizer::~Finalizer().
xsd::cxx::xml::dom::auto_ptr< xercesc::DOMDocument > XmlTools::ReadFileToDomDocument | ( | const std::string & | rFileName, | |
::xsd::cxx::xml::error_handler< char > & | rErrorHandler, | |||
const ::xsd::cxx::tree::properties< char > & | rProps | |||
) | [static] |
Read an XML file into a DOM document. Useful for figuring out what version of the parameters file we're dealing with, so we can construct the right version of the object model.
Requires the Xerces runtime to have been initialised.
rFileName | the file to read | |
rErrorHandler | handler for any parsing errors | |
rProps | properties that specify fixed schema locations, if wanted |
Definition at line 119 of file XmlTools.cpp.
Referenced by ReadXmlFile().
void XmlTools::PrintNode | ( | const std::string & | rMsg, | |
xercesc::DOMNode * | pNode, | |||
bool | showChildren = false | |||
) | [static] |
Display key info about an XML node for debugging.
rMsg | message to prepend to the report | |
pNode | the node to display | |
showChildren | whether to recursive display the node's children |
Definition at line 231 of file XmlTools.cpp.
xercesc::DOMElement * XmlTools::SetNamespace | ( | xercesc::DOMDocument * | pDocument, | |
xercesc::DOMElement * | pElement, | |||
const std::string & | rNamespace | |||
) | [static] |
Fake having a namespace in older configuration files, by setting the namespace on each element in a tree.
pDocument | the DOM document containing the tree to be transformed | |
pElement | the root of the tree to be transformed | |
rNamespace | the namespace to put elements in |
Definition at line 304 of file XmlTools.cpp.
Referenced by HeartConfig::ReadFile(), and SetNamespace().
xercesc::DOMElement * XmlTools::SetNamespace | ( | xercesc::DOMDocument * | pDocument, | |
xercesc::DOMElement * | pElement, | |||
const XMLCh * | pNamespace | |||
) | [static] |
Fake having a namespace in older configuration files, by setting the namespace on each element in a tree.
pDocument | the DOM document containing the tree to be transformed | |
pElement | the root of the tree to be transformed | |
pNamespace | the namespace to put elements in |
Definition at line 260 of file XmlTools.cpp.
References GetChildElements(), and SetNamespace().
void XmlTools::WrapContentInElement | ( | xercesc::DOMDocument * | pDocument, | |
xercesc::DOMElement * | pElement, | |||
const XMLCh * | pNewElementLocalName | |||
) | [static] |
Wrap the content (children) of an element within a new element. The new element becomes the sole child of the original element.
pDocument | the DOM document containing the tree to be transformed | |
pElement | the element whose content is to be wrapped | |
pNewElementLocalName | the local name (i.e. without namespace prefix) of the wrapping element (the namespace of pElement will be used). |
Definition at line 374 of file XmlTools.cpp.
Referenced by XmlTransforms::TransformIonicModelDefinitions().
std::vector< xercesc::DOMElement * > XmlTools::GetChildElements | ( | xercesc::DOMElement * | pElement | ) | [static] |
Get all the child elements of the given element.
pElement | the parent element |
Definition at line 312 of file XmlTools.cpp.
Referenced by SetNamespace().
std::vector< xercesc::DOMElement * > XmlTools::FindElements | ( | xercesc::DOMElement * | pContextElement, | |
const std::string & | rPath | |||
) | [static] |
Find all elements matching the given path from this context element.
pContextElement | the root element to search from | |
rPath | where to search. This should be a '/'-separated path of element names. |
Definition at line 349 of file XmlTools.cpp.
Referenced by XmlTransforms::CheckForIluPreconditioner(), FindElements(), XmlTransforms::TransformArchiveDirectory(), and XmlTransforms::TransformIonicModelDefinitions().
void XmlTools::FindElements | ( | xercesc::DOMElement * | pContextElement, | |
const std::vector< std::string > & | rNames, | |||
std::vector< xercesc::DOMElement * > & | rResults, | |||
unsigned | depth = 0 | |||
) | [static] |
Find all elements matching the given path from this context element.
pContextElement | the root element to search from | |
rNames | a list of element names, the first of which is looked for as children of pContextElement; the next as children of those, etc. | |
rResults | vector to be filled in with matching elements | |
depth | for managing recursion; should not be provided by users |
Definition at line 328 of file XmlTools.cpp.
References FindElements().
std::string XmlTools::EscapeSpaces | ( | const std::string & | rPath | ) | [static] |
Helper method for URL-escaping spaces in file paths, to avoid confusing Xerces regarding schema locations. Note that this is a very specific fix: it doesn't do general URL-escaping.
rPath | the path to escape |
Definition at line 407 of file XmlTools.cpp.
Referenced by HeartConfig::ReadFile().