summaryrefslogtreecommitdiff
path: root/saedit/xml.h
blob: 584c568189b7d01d89bfc2a77d7290625d64dfb6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*=======================================*\
|  ____                         ____      |
| /    \         /\            |          |
| \____         /  \           |____      |
|      \       /____\          |          |
| \____/prite /      \nimation |____ditor |
|                                         |
|      Copyleft Vasily_Makarov 2011       |
|                                         |
\*=======================================*/
#ifndef XML_H
#define XML_H

#include <stdio.h>
#include <glib.h>
#include "common.h"

typedef struct {
	gchar  *name;
	gchar  *text;
	gchar  **attributes;
	int line_number;
	GList *sub_nodes;
} XMLNode;


XMLNode *xml_parse_file    (const gchar    *name);

XMLNode *xml_parse_buffer  (const gchar    *buffer, GError **error);

void     xml_free          (XMLNode        *node);

void     xml_output        (const XMLNode  *node,
                            GString        *output);

gchar  **xml_attr_new(const gchar *name, const gchar *value);
gchar	*xml_node_get_attr_value(const XMLNode *node, const gchar *attr_name);
gint	 xml_node_compare_with_name_func(gconstpointer a, gconstpointer b);
gint	 xml_node_compare_with_action_node_by_imageset_name_func(gconstpointer a, gconstpointer b);
gint	 xml_node_compare_with_attr_func(const XMLNode *node, const gchar **attr);

#endif