1 /*********************************
2 ** Tsunagari Tile Engine **
4 ** Copyright 2011-2012 OmegaSDG **
5 *********************************/
8 // Permission is hereby granted, free of charge, to any person obtaining a copy
9 // of this software and associated documentation files (the "Software"), to
10 // deal in the Software without restriction, including without limitation the
11 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12 // sell copies of the Software, and to permit persons to whom the Software is
13 // furnished to do so, subject to the following conditions:
15 // The above copyright notice and this permission notice shall be included in
16 // all copies or substantial portions of the Software.
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
32 #include <boost/shared_ptr.hpp>
33 #include <libxml/tree.h>
35 #ifndef LIBXML_TREE_ENABLED
36 #error Tree must be enabled in libxml2
44 XMLNode(XMLDoc
* doc
, xmlNode
* node
);
46 XMLNode
childrenNode() const;
49 bool is(const char* name
) const;
51 std::string
content() const;
52 bool intContent(int* i
) const;
53 bool doubleContent(double* d
) const;
55 bool hasAttr(const std::string
& name
) const;
56 std::string
attr(const std::string
& name
) const;
57 bool intAttr(const std::string
& name
, int* i
) const;
58 bool doubleAttr(const std::string
& name
, double* d
) const;
60 //! Whether this is a valid node (non-NULL).
61 operator bool() const;
71 bool init(const std::string
& path
,
72 const std::string
& data
,
76 xmlNode
* temporaryGetRoot() const;
77 const std::string
& path() const;
79 //! Equivalent to doc::unique();
82 //! Equivalent to doc::use_count().
83 long use_count() const;
85 //! Signifies whether document is has been initialized, parsed
86 //! correctly, and is valid.
87 operator bool() const;
90 boost::shared_ptr
<xmlDoc
> doc
;