mupdf
Loading...
Searching...
No Matches
xml.h
Go to the documentation of this file.
1// Copyright (C) 2004-2024 Artifex Software, Inc.
2//
3// This file is part of MuPDF.
4//
5// MuPDF is free software: you can redistribute it and/or modify it under the
6// terms of the GNU Affero General Public License as published by the Free
7// Software Foundation, either version 3 of the License, or (at your option)
8// any later version.
9//
10// MuPDF is distributed in the hope that it will be useful, but WITHOUT ANY
11// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12// FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13// details.
14//
15// You should have received a copy of the GNU Affero General Public License
16// along with MuPDF. If not, see <https://www.gnu.org/licenses/agpl-3.0.en.html>
17//
18// Alternative licensing terms are available from the licensor.
19// For commercial licensing, see <https://www.artifex.com/> or contact
20// Artifex Software, Inc., 39 Mesa Street, Suite 108A, San Francisco,
21// CA 94129, USA, for further information.
22
23#ifndef MUPDF_FITZ_XML_H
24#define MUPDF_FITZ_XML_H
25
26#include "mupdf/fitz/system.h"
27#include "mupdf/fitz/context.h"
28#include "mupdf/fitz/buffer.h"
29#include "mupdf/fitz/pool.h"
30#include "mupdf/fitz/archive.h"
31
35
36typedef struct fz_xml fz_xml;
37
38/* For backwards compatibility */
40
46fz_xml *fz_parse_xml(fz_context *ctx, fz_buffer *buf, int preserve_white);
47
53fz_xml *fz_parse_xml_stream(fz_context *ctx, fz_stream *stream, int preserve_white);
54
60fz_xml *fz_parse_xml_archive_entry(fz_context *ctx, fz_archive *dir, const char *filename, int preserve_white);
61
70fz_xml *fz_try_parse_xml_archive_entry(fz_context *ctx, fz_archive *dir, const char *filename, int preserve_white);
71
77
82
88void fz_drop_xml(fz_context *ctx, fz_xml *xml);
89
95
100
105
110
115
120
124int fz_xml_is_tag(fz_xml *item, const char *name);
125
129char *fz_xml_tag(fz_xml *item);
130
135char *fz_xml_att(fz_xml *item, const char *att);
136
142char *fz_xml_att_alt(fz_xml *item, const char *one, const char *two);
143
150int fz_xml_att_eq(fz_xml *item, const char *name, const char *match);
151
155void fz_xml_add_att(fz_context *ctx, fz_pool *pool, fz_xml *node, const char *key, const char *val);
156
161char *fz_xml_text(fz_xml *item);
162
166void fz_output_xml(fz_context *ctx, fz_output *out, fz_xml *item, int level);
167
172void fz_debug_xml(fz_xml *item, int level);
173
180fz_xml *fz_xml_find(fz_xml *item, const char *tag);
181
188fz_xml *fz_xml_find_next(fz_xml *item, const char *tag);
189
196fz_xml *fz_xml_find_down(fz_xml *item, const char *tag);
197
205fz_xml *fz_xml_find_match(fz_xml *item, const char *tag, const char *att, const char *match);
206
214fz_xml *fz_xml_find_next_match(fz_xml *item, const char *tag, const char *att, const char *match);
215
223fz_xml *fz_xml_find_down_match(fz_xml *item, const char *tag, const char *att, const char *match);
224
231fz_xml *fz_xml_find_dfs(fz_xml *item, const char *tag, const char *att, const char *match);
232
240fz_xml *fz_xml_find_dfs_top(fz_xml *item, const char *tag, const char *att, const char *match, fz_xml *top);
241
248fz_xml *fz_xml_find_next_dfs(fz_xml *item, const char *tag, const char *att, const char *match);
249
257fz_xml *fz_xml_find_next_dfs_top(fz_xml *item, const char *tag, const char *att, const char *match, fz_xml *top);
258
263
267
273
279
285fz_xml *fz_dom_create_element(fz_context *ctx, fz_xml *dom, const char *tag);
286
292fz_xml *fz_dom_create_text_node(fz_context *ctx, fz_xml *dom, const char *text);
293
306fz_xml *fz_dom_find(fz_context *ctx, fz_xml *elt, const char *tag, const char *att, const char *match);
307
311fz_xml *fz_dom_find_next(fz_context *ctx, fz_xml *elt, const char *tag, const char *att, const char *match);
312
317void fz_dom_append_child(fz_context *ctx, fz_xml *parent, fz_xml *child);
318
323void fz_dom_insert_before(fz_context *ctx, fz_xml *node, fz_xml *new_elt);
324
329void fz_dom_insert_after(fz_context *ctx, fz_xml *node, fz_xml *new_elt);
330
338
346
352
358
364
370
376void fz_dom_add_attribute(fz_context *ctx, fz_xml *elt, const char *att, const char *value);
377
381void fz_dom_remove_attribute(fz_context *ctx, fz_xml *elt, const char *att);
382
388const char *fz_dom_attribute(fz_context *ctx, fz_xml *elt, const char *att);
389
400const char *fz_dom_get_attribute(fz_context *ctx, fz_xml *elt, int i, const char **att);
401
405fz_xml *fz_new_dom(fz_context *ctx, const char *tag);
406
412fz_xml *fz_new_dom_node(fz_context *ctx, fz_xml *dom, const char *tag);
413
419fz_xml *fz_new_dom_text_node(fz_context *ctx, fz_xml *dom, const char *text);
420
433void fz_write_xml(fz_context *ctx, fz_xml *root, fz_output *out, int indented);
434
438void fz_save_xml(fz_context *ctx, fz_xml *root, const char *path, int indented);
439
440#endif
struct fz_pool fz_pool
Definition pool.h:34
Definition archive.h:429
Definition buffer.h:41
Definition context.h:886
Definition output.h:111
Definition stream.h:320
void fz_drop_xml(fz_context *ctx, fz_xml *xml)
fz_xml * fz_dom_document_element(fz_context *ctx, fz_xml *dom)
char * fz_xml_att_alt(fz_xml *item, const char *one, const char *two)
char * fz_xml_tag(fz_xml *item)
fz_xml * fz_try_parse_xml_archive_entry(fz_context *ctx, fz_archive *dir, const char *filename, int preserve_white)
void fz_dom_add_attribute(fz_context *ctx, fz_xml *elt, const char *att, const char *value)
fz_xml * fz_dom_find(fz_context *ctx, fz_xml *elt, const char *tag, const char *att, const char *match)
void fz_debug_xml(fz_xml *item, int level)
fz_xml * fz_parse_xml(fz_context *ctx, fz_buffer *buf, int preserve_white)
fz_xml * fz_xml_find_next(fz_xml *item, const char *tag)
fz_xml * fz_xml_root(fz_xml_doc *xml)
fz_xml * fz_dom_first_child(fz_context *ctx, fz_xml *elt)
fz_xml * fz_dom_body(fz_context *ctx, fz_xml *dom)
fz_xml * fz_xml_find_next_dfs(fz_xml *item, const char *tag, const char *att, const char *match)
fz_xml * fz_dom_parent(fz_context *ctx, fz_xml *elt)
fz_xml fz_xml_doc
Definition xml.h:39
fz_xml * fz_new_dom_node(fz_context *ctx, fz_xml *dom, const char *tag)
char * fz_xml_att(fz_xml *item, const char *att)
const char * fz_dom_get_attribute(fz_context *ctx, fz_xml *elt, int i, const char **att)
fz_xml * fz_parse_xml_stream(fz_context *ctx, fz_stream *stream, int preserve_white)
void fz_dom_insert_before(fz_context *ctx, fz_xml *node, fz_xml *new_elt)
void fz_dom_append_child(fz_context *ctx, fz_xml *parent, fz_xml *child)
void fz_save_xml(fz_context *ctx, fz_xml *root, const char *path, int indented)
fz_xml * fz_xml_down(fz_xml *item)
fz_xml * fz_xml_find_next_dfs_top(fz_xml *item, const char *tag, const char *att, const char *match, fz_xml *top)
char * fz_new_text_from_xml(fz_context *ctx, fz_xml *root)
fz_xml * fz_xml_up(fz_xml *item)
void fz_dom_remove_attribute(fz_context *ctx, fz_xml *elt, const char *att)
fz_xml * fz_xml_find_next_match(fz_xml *item, const char *tag, const char *att, const char *match)
struct fz_xml fz_xml
Definition xml.h:36
fz_xml * fz_dom_previous(fz_context *ctx, fz_xml *elt)
fz_xml * fz_new_dom_text_node(fz_context *ctx, fz_xml *dom, const char *text)
void fz_dom_remove(fz_context *ctx, fz_xml *elt)
fz_xml * fz_xml_find_down_match(fz_xml *item, const char *tag, const char *att, const char *match)
fz_xml * fz_keep_xml(fz_context *ctx, fz_xml *xml)
fz_xml * fz_dom_next(fz_context *ctx, fz_xml *elt)
int fz_xml_att_eq(fz_xml *item, const char *name, const char *match)
fz_xml * fz_xml_find_dfs(fz_xml *item, const char *tag, const char *att, const char *match)
fz_xml * fz_xml_find_dfs_top(fz_xml *item, const char *tag, const char *att, const char *match, fz_xml *top)
void fz_detach_xml(fz_context *ctx, fz_xml *node)
int fz_xml_is_tag(fz_xml *item, const char *name)
fz_xml * fz_xml_next(fz_xml *item)
fz_xml * fz_xml_find_down(fz_xml *item, const char *tag)
fz_xml * fz_new_dom(fz_context *ctx, const char *tag)
fz_xml * fz_dom_clone(fz_context *ctx, fz_xml *elt)
fz_xml * fz_xml_find_match(fz_xml *item, const char *tag, const char *att, const char *match)
fz_xml * fz_parse_xml_from_html5(fz_context *ctx, fz_buffer *buf)
fz_xml * fz_dom_create_element(fz_context *ctx, fz_xml *dom, const char *tag)
void fz_output_xml(fz_context *ctx, fz_output *out, fz_xml *item, int level)
void fz_dom_insert_after(fz_context *ctx, fz_xml *node, fz_xml *new_elt)
fz_xml * fz_xml_find(fz_xml *item, const char *tag)
fz_xml * fz_dom_find_next(fz_context *ctx, fz_xml *elt, const char *tag, const char *att, const char *match)
char * fz_xml_text(fz_xml *item)
fz_xml * fz_dom_create_text_node(fz_context *ctx, fz_xml *dom, const char *text)
void fz_xml_add_att(fz_context *ctx, fz_pool *pool, fz_xml *node, const char *key, const char *val)
const char * fz_dom_attribute(fz_context *ctx, fz_xml *elt, const char *att)
void fz_write_xml(fz_context *ctx, fz_xml *root, fz_output *out, int indented)
fz_xml * fz_parse_xml_archive_entry(fz_context *ctx, fz_archive *dir, const char *filename, int preserve_white)
fz_xml * fz_xml_prev(fz_xml *item)