/* Cataract - Static web photo gallery generator * Copyright (C) 2008 Tomas Bzatek * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include typedef struct { xmlDocPtr doc; xmlXPathContextPtr xpathCtx; } TXMLFile; /* * xml_parser_load: initialize and load the XML document */ TXMLFile * xml_parser_load (const gchar *filename); /* * xml_parser_close: close the XML document parser */ void xml_parser_close (TXMLFile *file); /* * xml_file_get_node_name: retrieve name of the XPath node */ gchar * xml_file_get_node_name (TXMLFile *file, const gchar *x_path); /* * xml_file_get_node_value: retrieve string value from XPath node * - multiple matched nodes will be concatenated into one string * - otherwise please use [0], [1] etc. quantificators */ gchar * xml_file_get_node_value (TXMLFile *file, const gchar *x_path); /* * xml_file_get_node_attribute: retrieve attribute value from XPath node */ gchar * xml_file_get_node_attribute (TXMLFile *file, const gchar *x_path, const gchar *attr); long int xml_file_get_node_attribute_long (TXMLFile *file, const gchar *x_path, const gchar *attr, const int _default); gboolean xml_file_get_node_attribute_boolean (TXMLFile *file, const gchar *x_path, const gchar *attr, const gboolean _default); /* * xml_file_get_node_present: existency test of the XPath node */ gboolean xml_file_get_node_present (TXMLFile *file, const gchar *x_path); /* * xml_file_node_get_children_count: retrieve number of children items of the specified XPath node */ int xml_file_node_get_children_count (TXMLFile *file, const gchar *x_path);