100 lines
4.9 KiB
C
100 lines
4.9 KiB
C
|
/* xml-reader.h
|
||
|
*
|
||
|
* Copyright 2009 Christian Hergert <chris@dronelabs.com>
|
||
|
*
|
||
|
* This library is free software; you can redistribute it and/or
|
||
|
* modify it under the terms of the GNU Lesser General Public
|
||
|
* License as published by the Free Software Foundation; either
|
||
|
* version 2 of the License, or (at your option) any later version.
|
||
|
*
|
||
|
* This library 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
|
||
|
* Lesser General Public License for more details.
|
||
|
*
|
||
|
* Author:
|
||
|
* Christian Hergert <chris@dronelabs.com>
|
||
|
*
|
||
|
* Based upon work by:
|
||
|
* Emmanuele Bassi
|
||
|
*
|
||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include <gio/gio.h>
|
||
|
#include <libxml/xmlreader.h>
|
||
|
|
||
|
G_BEGIN_DECLS
|
||
|
|
||
|
#define XML_TYPE_READER (xml_reader_get_type ())
|
||
|
|
||
|
#define XML_READER_ERROR (xml_reader_error_quark())
|
||
|
|
||
|
G_DECLARE_FINAL_TYPE (XmlReader, xml_reader, XML, READER, GObject)
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
XML_READER_ERROR_INVALID,
|
||
|
} XmlReaderError;
|
||
|
|
||
|
GQuark xml_reader_error_quark (void);
|
||
|
XmlReader *xml_reader_new (void);
|
||
|
gboolean xml_reader_load_from_path (XmlReader *reader,
|
||
|
const gchar *path);
|
||
|
gboolean xml_reader_load_from_file (XmlReader *reader,
|
||
|
GFile *file,
|
||
|
GCancellable *cancellable,
|
||
|
GError **error);
|
||
|
gboolean xml_reader_load_from_data (XmlReader *reader,
|
||
|
const gchar *data,
|
||
|
gssize length,
|
||
|
const gchar *uri,
|
||
|
const gchar *encoding);
|
||
|
gboolean xml_reader_load_from_stream (XmlReader *reader,
|
||
|
GInputStream *stream,
|
||
|
GError **error);
|
||
|
|
||
|
gint xml_reader_get_depth (XmlReader *reader);
|
||
|
xmlReaderTypes xml_reader_get_node_type (XmlReader *reader);
|
||
|
const gchar *xml_reader_get_value (XmlReader *reader);
|
||
|
const gchar *xml_reader_get_name (XmlReader *reader);
|
||
|
const gchar *xml_reader_get_local_name (XmlReader *reader);
|
||
|
gchar *xml_reader_read_string (XmlReader *reader);
|
||
|
gchar *xml_reader_get_attribute (XmlReader *reader,
|
||
|
const gchar *name);
|
||
|
gboolean xml_reader_is_a (XmlReader *reader,
|
||
|
const gchar *name);
|
||
|
gboolean xml_reader_is_a_local (XmlReader *reader,
|
||
|
const gchar *local_name);
|
||
|
gboolean xml_reader_is_namespace (XmlReader *reader,
|
||
|
const gchar *ns);
|
||
|
gboolean xml_reader_is_empty_element (XmlReader *reader);
|
||
|
|
||
|
gboolean xml_reader_read_start_element (XmlReader *reader,
|
||
|
const gchar *name);
|
||
|
gboolean xml_reader_read_end_element (XmlReader *reader);
|
||
|
|
||
|
gchar *xml_reader_read_inner_xml (XmlReader *reader);
|
||
|
gchar *xml_reader_read_outer_xml (XmlReader *reader);
|
||
|
|
||
|
gboolean xml_reader_read (XmlReader *reader);
|
||
|
gboolean xml_reader_read_to_next (XmlReader *reader);
|
||
|
gboolean xml_reader_read_to_next_sibling (XmlReader *reader);
|
||
|
|
||
|
gboolean xml_reader_move_to_element (XmlReader *reader);
|
||
|
gboolean xml_reader_move_to_attribute (XmlReader *reader,
|
||
|
const gchar *name);
|
||
|
void xml_reader_move_up_to_depth (XmlReader *reader,
|
||
|
gint depth);
|
||
|
|
||
|
gboolean xml_reader_move_to_first_attribute (XmlReader *reader);
|
||
|
gboolean xml_reader_move_to_next_attribute (XmlReader *reader);
|
||
|
gint xml_reader_count_attributes (XmlReader *reader);
|
||
|
gboolean xml_reader_move_to_nth_attribute (XmlReader *reader,
|
||
|
gint nth);
|
||
|
gint xml_reader_get_line_number (XmlReader *reader);
|
||
|
|
||
|
G_END_DECLS
|