summaryrefslogtreecommitdiff
path: root/src/utils/xml.h
diff options
context:
space:
mode:
authorPhilipp Sehmisch <tmw@crushnet.org>2008-05-21 21:44:27 +0000
committerPhilipp Sehmisch <tmw@crushnet.org>2008-05-21 21:44:27 +0000
commit0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd (patch)
tree6b2a208fac407cf5cf4ddcab2c5e1ebc2b9723dc /src/utils/xml.h
parent0c869fc47a30616967cb8b69af9ec772566d7076 (diff)
downloadmana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.tar.gz
mana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.tar.bz2
mana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.tar.xz
mana-0ac3b58c4c5079f22e6bf4b0efba7f5fe99565cd.zip
Merged revisions 4013,4027,4043,4174,4250,4254 via svnmerge from
https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk ........ r4013 | crush_tmw | 2008-04-01 01:18:19 +0200 (Di, 01 Apr 2008) | 1 line Implemented NPC XML database which maps NPC IDs to one or more animation files and thus enables animated NPCs. ........ r4027 | crush_tmw | 2008-04-02 01:34:14 +0200 (Mi, 02 Apr 2008) | 1 line misspelled filename ........ r4043 | b_lindeijer | 2008-04-07 10:37:23 +0200 (Mo, 07 Apr 2008) | 3 lines Added XML::Document class which simplifies parsing an XML document and automatically cleans it up again. ........ r4174 | b_lindeijer | 2008-04-23 14:57:45 +0200 (Mi, 23 Apr 2008) | 2 lines Fixed svn:keywords properties and added header to guild.h. ........ r4250 | crush_tmw | 2008-05-19 18:18:38 +0200 (Mo, 19 Mai 2008) | 1 line Added the possibility to add particle effects to NPCs in npcs.xml. ........ r4254 | crush_tmw | 2008-05-20 15:58:26 +0200 (Di, 20 Mai 2008) | 1 line fixed some filename confusion messup in the last commit. ........ NOTE: This was my first commit using svnmerge. Please check if I did everything correctly.
Diffstat (limited to 'src/utils/xml.h')
-rw-r--r--src/utils/xml.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/utils/xml.h b/src/utils/xml.h
index ef3bad3d..5473b2ca 100644
--- a/src/utils/xml.h
+++ b/src/utils/xml.h
@@ -34,6 +34,43 @@
namespace XML
{
/**
+ * A helper class for parsing an XML document, which also cleans it up
+ * again (RAII).
+ */
+ class Document
+ {
+ public:
+ /**
+ * Constructor that attempts to load the given file through the
+ * resource manager. Logs errors.
+ */
+ Document(const std::string &filename);
+
+ /**
+ * Constructor that attempts to load an XML document from memory.
+ * Does not log errors.
+ *
+ * @param data the string to parse as XML
+ * @param size the length of the string in bytes
+ */
+ Document(const char *data, int size);
+
+ /**
+ * Destructor. Frees the loaded XML file.
+ */
+ ~Document();
+
+ /**
+ * Returns the root node of the document (or NULL if there was a
+ * load error).
+ */
+ xmlNodePtr rootNode();
+
+ private:
+ xmlDocPtr mDoc;
+ };
+
+ /**
* Gets an integer property from an xmlNodePtr.
*/
int