ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/XmlTools2/trunk/utilxmltools.h
Revision: 906
Committed: Sat Feb 1 14:27:58 2014 UTC (11 years, 8 months ago) by s10k
Content type: text/x-chdr
File size: 2261 byte(s)
Log Message:

File Contents

# Content
1 #ifndef UTILXMLTOOLS_H
2 #define UTILXMLTOOLS_H
3
4 // Utilities functions specific used for Xml Tools (not general functions)
5
6 #include "util.h"
7 #include "xmlfilter.h"
8 #include "libs/pugixml.hpp"
9
10 namespace UtilXmlTools{
11
12 QStringList getAllXmlFilesByWildcard(const QString &wildcard);
13 QStringList getAllPatchFilesByWildcard(const QString &wildcard);
14 void backupFile(const QString &file);
15 void getAllNamedElements(pugi::xml_node &node, QList<pugi::xml_node> &result, XmlFilter &filters);
16 void displaySuccessMessage(const int numberOperations, const QString &operation);
17 void displayErrorMessage(const QString& operation, const QString &message, bool exitProgram=true);
18 pugi::xml_node getFirstNamedElements(pugi::xml_node &node, XmlFilter &filters);
19
20 //// inline functions
21
22 inline void loadXmlFile(const QString &file, pugi::xml_document &document, pugi::xml_node &rootNode, bool backupsEnabled, const QString &operationForErrorMessage){
23
24 pugi::xml_parse_result result = document.load_file(file.toLatin1().constData());
25 rootNode=document.root();
26
27 if(result.status==pugi::status_ok){
28 std::cout << "File '" << file.toLatin1().constData() << "' loaded with sucess." << std::endl;
29 }
30 else{
31 UtilXmlTools::displayErrorMessage(operationForErrorMessage,"An error ocurred while loading '" +file + "' XML file\n" + result.description());
32 }
33
34 if(backupsEnabled){
35 UtilXmlTools::backupFile(file); // bake a backup of the file.
36 }
37
38 }
39
40 inline void saveXmlFile(const QString &file, pugi::xml_document &document, const QString &operationForErrorMessage){
41 if(!document.save_file(file.toLatin1().constData(), "\t", pugi::format_indent | pugi::format_save_file_text | pugi::format_no_escapes)){ // output as the system new lines ending
42 UtilXmlTools::displayErrorMessage(operationForErrorMessage,"An error ocurred while saving '" + file + "' XML file");
43 }
44 }
45
46 //inline void checkIfValidXmlFile(const QString &file){
47 // if(!file.endsWith(".xml",Qt::CaseInsensitive)){
48 // std::cout << "Tried to load a non xml file: '" << Util::toCstr(file) << "'. XmlTools only work over XmlFiles." << std::endl;
49 // exit(1);
50 // }
51 //}
52
53 }
54
55 #endif // UTILXMLTOOLS_H