OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [services/] [ezxml/] [current/] [doc/] [ezxml.txt] - Blame information for rev 811

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
ezXML - XML Parsing C Library
2
version 0.8.5
3
 
4
ezXML is a C library for parsing XML documents inspired by simpleXML for PHP.
5
As the name implies, it's easy to use. It's ideal for parsing XML configuration
6
files or REST web service responses. It's also fast and lightweight (less than
7
20k compiled). The latest verions is available here:
8
http://prdownloads.sf.net/ezxml/ezxml-0.8.5.tar.gz?download
9
 
10
Example Usage
11
 
12
Given the following example XML document:
13
 
14
15
16
  
17
    
18
      Kimi Raikkonen
19
      45
20
    
21
    
22
      David Coultard
23
      24
24
    
25
  
26
27
 
28
This code snippet prints out a list of drivers, which team they drive for,
29
and how many championship points they have:
30
 
31
ezxml_t f1 = ezxml_parse_file("formula1.xml"), team, driver;
32
const char *teamname;
33
 
34
for (team = ezxml_child(f1, "team"); team; team = team->next) {
35
    teamname = ezxml_attr(team, "name");
36
    for (driver = ezxml_child(team, "driver"); driver; driver = driver->next) {
37
        printf("%s, %s: %s\n", ezxml_child(driver, "name")->txt, teamname,
38
               ezxml_child(driver, "points")->txt);
39
    }
40
}
41
ezxml_free(f1);
42
 
43
Alternately, the following would print out the name of the second driver on the
44
first team:
45
 
46
ezxml_t f1 = ezxml_parse_file("formula1.xml");
47
 
48
printf("%s\n", ezxml_get(f1, "team", 0, "driver", 1, "name", -1)->txt);
49
ezxml_free(f1);
50
 
51
The -1 indicates the end of the argument list. That's pretty much all
52
there is to it. Complete API documentation can be found in ezxml.h.
53
 
54
Known Limitations
55
 
56
- ezXML is not a validating parser
57
 
58
- Loads the entire XML document into memory at once and does not allow for
59
  documents to be passed in a chunk at a time. Large XML files can still be
60
  handled though through ezxml_parse_file() and ezxml_parse_fd(), which use mmap
61
  to map the file to a virtual address space and rely on the virtual memory
62
  system to page in data as needed.
63
 
64
- Does not currently recognize all possible well-formedness errors. It should
65
  correctly handle all well-formed XML documents and will either ignore or halt
66
  XML processing on well-formedness errors. More well-formedness checking will
67
  be added in subsiquent releases.
68
 
69
- In making the character content of tags easy to access, there is no way
70
  provided to keep track of the location of sub tags relative to the character
71
  data. Example:
72
 
73
  line one
74
  line two
75
 
76
  The character content of the doc tag is reported as "line one\nline two", and
77
  
is reported as a sub tag, but the location of
within the
78
  character data is not. The function ezxml_toxml() will convert an ezXML
79
  structure back to XML with sub tag locations intact.
80
 
81
Licensing
82
 
83
ezXML was written by Aaron Voisine  and is distributed under
84
the terms of the MIT license, described in license.txt.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.