summaryrefslogtreecommitdiff
path: root/README.xml
blob: 809360afe4e78ef58ae2c2baea781f022cb228c1 (plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
XML parser
==========


Dependencies
------------

- C compiler (C99)


Features
--------

- Relatively small parser.
- Pretty simple API comparable with libexpat.
- Pretty fast.
- Portable


Supports
--------

- Tags in short-form (<img src="lolcat.jpg" title="Meow" />).
- Tag attributes.
- Short attributes without an explicity set value (<input type="checkbox" checked />).
- Comments
- CDATA sections.


Caveats
-------

- Internally static buffers are used, callbacks like XMLParser.xmldata are
  called multiple times for the same tag if the data size is bigger than the
  internal buffer size (sizeof(XMLParser.data)). To differentiate between new
  calls for data you can use the xml*start and xml*end handlers.
- There is no table of (HTML / XML) named entities you should handle this with
  the XMLParser.xmldataentity handler yourself.
- The XML is not checked for errors so it will continue parsing invalid XML
  data, this is by design.


Files used
----------

xml.c and xml.h


Interface / API
---------------

Should be trivial, see xml.c and xml.h and the examples below.


Examples
--------

sfeed_opml_import.c or sfeed_web.c or sfeed_xmlenc.c


License
-------
See LICENSE file.