|
|
@ -1,15 +1,18 @@ |
|
|
|
<HTML> |
|
|
|
<HTML> |
|
|
|
<HEAD> |
|
|
|
<HEAD> |
|
|
|
<TITLE>Mini-XML Home Page</TITLE> |
|
|
|
<TITLE>Mini-XML Home Page</TITLE> |
|
|
|
|
|
|
|
<STYLE><!-- |
|
|
|
|
|
|
|
H1, H2, H3, P { font-family: sans-serif; text-align: justify; } |
|
|
|
|
|
|
|
H1.title, P.title { font-family: sans-serif; text-align: center; } |
|
|
|
|
|
|
|
TT, PRE, PRE A:link { font-weight: bold; color: #7f0000; } |
|
|
|
|
|
|
|
--></STYLE> |
|
|
|
</HEAD> |
|
|
|
</HEAD> |
|
|
|
<BODY> |
|
|
|
<BODY> |
|
|
|
|
|
|
|
|
|
|
|
<SPAN STYLE="text-align: justify;"> |
|
|
|
<H1 CLASS="title" ALIGN="CENTER">Mini-XML Home Page</H1> |
|
|
|
|
|
|
|
|
|
|
|
<H1 ALIGN="CENTER">Mini-XML Home Page</H1> |
|
|
|
<P CLASS="title" ALIGN="CENTER">Current Release: v0.9 ( <A |
|
|
|
|
|
|
|
HREF="mxml-0.9.tar.gz">download source .tar.gz 40k</A> )</P> |
|
|
|
<P ALIGN="CENTER">Current Release: v0.9 ( <A |
|
|
|
|
|
|
|
HREF="mxml-0.9.tar.gz">download 40k</A> )</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H2>Introduction</H2> |
|
|
|
<H2>Introduction</H2> |
|
|
|
|
|
|
|
|
|
|
@ -17,23 +20,23 @@ HREF="mxml-0.9.tar.gz">download 40k</A> )</P> |
|
|
|
read XML and XML-like data files in your application without |
|
|
|
read XML and XML-like data files in your application without |
|
|
|
requiring large non-standard libraries. Mini-XML only requires |
|
|
|
requiring large non-standard libraries. Mini-XML only requires |
|
|
|
an ANSI C compatible compiler (GCC works, as do most vendors' |
|
|
|
an ANSI C compatible compiler (GCC works, as do most vendors' |
|
|
|
ANSI C compilers) and a "make" program. |
|
|
|
ANSI C compilers) and a "make" program.</P> |
|
|
|
|
|
|
|
|
|
|
|
<P>Mini-XML was created to support the basic hierarchy provided |
|
|
|
<P>Mini-XML was created to support the basic hierarchy provided |
|
|
|
by XML and some simple data types, but doesn't do validation or |
|
|
|
by XML and some simple data types, but doesn't do validation or |
|
|
|
other types of processing on the data. |
|
|
|
other types of processing on the data.</P> |
|
|
|
|
|
|
|
|
|
|
|
<H2>Building Mini-XML</H2> |
|
|
|
<H2>Building Mini-XML</H2> |
|
|
|
|
|
|
|
|
|
|
|
<P>Mini-XML comes with an autoconf-based configure script; just |
|
|
|
<P>Mini-XML comes with an autoconf-based configure script; just |
|
|
|
type the following command to get things going: |
|
|
|
type the following command to get things going:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
./configure |
|
|
|
./configure |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
<P>The default install prefix is /usr/local, which can be |
|
|
|
<P>The default install prefix is /usr/local, which can be |
|
|
|
overridden using the --prefix option: |
|
|
|
overridden using the --prefix option:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
./configure --prefix=/foo |
|
|
|
./configure --prefix=/foo |
|
|
@ -41,7 +44,7 @@ overridden using the --prefix option: |
|
|
|
|
|
|
|
|
|
|
|
<P>Once you have configured the software, type "make" to do the |
|
|
|
<P>Once you have configured the software, type "make" to do the |
|
|
|
build and then run the test program to verify that things are |
|
|
|
build and then run the test program to verify that things are |
|
|
|
working, as follows: |
|
|
|
working, as follows:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
make |
|
|
|
make |
|
|
@ -51,39 +54,40 @@ working, as follows: |
|
|
|
<H2>Installing Mini-XML</H2> |
|
|
|
<H2>Installing Mini-XML</H2> |
|
|
|
|
|
|
|
|
|
|
|
<P>The "install" target will install Mini-XML in the lib and |
|
|
|
<P>The "install" target will install Mini-XML in the lib and |
|
|
|
include directories: |
|
|
|
include directories:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
make install |
|
|
|
make install |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
<P>Once you have installed it, use the "-lmxml" option to link |
|
|
|
<P>Once you have installed it, use the "-lmxml" option to link |
|
|
|
your application against it. |
|
|
|
your application against it.</P> |
|
|
|
|
|
|
|
|
|
|
|
<H2>Documentation</H2> |
|
|
|
<H2>Documentation</H2> |
|
|
|
|
|
|
|
|
|
|
|
<P>The documentation is currently just in this page. At |
|
|
|
<P>The documentation is currently just in this page. At some |
|
|
|
some point I'll probably do some proper documentation, but |
|
|
|
point I'll probably do some proper documentation, but for now |
|
|
|
for now just read here and look at the testmxml.c source |
|
|
|
just read here and look at the <A |
|
|
|
file for an example of reading and printing the contents of |
|
|
|
HREF="testmxml.c"><TT>testmxml.c</TT></A> source file for an |
|
|
|
an XML file to stdout. |
|
|
|
example of reading and printing the contents of an XML file to |
|
|
|
|
|
|
|
stdout.</P> |
|
|
|
|
|
|
|
|
|
|
|
<P>Mini-XML provides a single header file which you include: |
|
|
|
<P>Mini-XML provides a single header file which you include:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
#include <mxml.h> |
|
|
|
<A HREF="mxml.h">#include <mxml.h></A> |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
<P>Nodes are defined by the "mxml_node_t" structure; the "type" |
|
|
|
<P>Nodes are defined by the <TT>mxml_node_t</TT> structure; the |
|
|
|
member defines the node type (element, integer, opaque, |
|
|
|
<TT>type</TT> member defines the node type (element, integer, |
|
|
|
real, or text) which determines which value you want to look |
|
|
|
opaque, real, or text) which determines which value you want to |
|
|
|
at in the "value" union. New nodes can be created using the |
|
|
|
look at in the <TT>value</TT> union. New nodes can be created |
|
|
|
"mxmlNewElement()", "mxmlNewInteger()", "mxmlNewOpaque()", |
|
|
|
using the <TT>mxmlNewElement()</TT>, <TT>mxmlNewInteger()</TT>, |
|
|
|
"mxmlNewReal()", and "mxmlNewText()" functions. Only |
|
|
|
<TT>mxmlNewOpaque()</TT>, <TT>mxmlNewReal()</TT>, and |
|
|
|
elements can have child nodes, and the top node must be an |
|
|
|
<TT>mxmlNewText()</TT> functions. Only elements can have child |
|
|
|
element, usually "?xml". |
|
|
|
nodes, and the top node must be an element, usually "?xml".</P> |
|
|
|
|
|
|
|
|
|
|
|
<P>You load an XML file using the "mxmlLoadFile()" function: |
|
|
|
<P>You load an XML file using the <TT>mxmlLoadFile()</TT> function:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
FILE *fp; |
|
|
|
FILE *fp; |
|
|
@ -94,8 +98,8 @@ element, usually "?xml". |
|
|
|
fclose(fp); |
|
|
|
fclose(fp); |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
<P>Similarly, you save an XML file using the "mxmlSaveFile()" |
|
|
|
<P>Similarly, you save an XML file using the <TT>mxmlSaveFile()</TT> |
|
|
|
function: |
|
|
|
function:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
FILE *fp; |
|
|
|
FILE *fp; |
|
|
@ -107,7 +111,7 @@ function: |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
<P>You can find a named element/node using the |
|
|
|
<P>You can find a named element/node using the |
|
|
|
"mxmlFindElement()" function: |
|
|
|
<TT>mxmlFindElement()</TT> function:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
mxml_node_t *node = mxmlFindElement(tree, tree, "name"); |
|
|
|
mxml_node_t *node = mxmlFindElement(tree, tree, "name"); |
|
|
@ -127,7 +131,8 @@ function: |
|
|
|
</PRE> |
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
<P>Finally, once you are done with the XML data, use the |
|
|
|
<P>Finally, once you are done with the XML data, use the |
|
|
|
"mxmlDelete()" function to free the memory that is used: |
|
|
|
<TT>mxmlDelete()</TT> function to recursively free the memory |
|
|
|
|
|
|
|
that is used for a particular node or the entire tree:</P> |
|
|
|
|
|
|
|
|
|
|
|
<PRE> |
|
|
|
<PRE> |
|
|
|
mxmlDelete(tree); |
|
|
|
mxmlDelete(tree); |
|
|
@ -137,29 +142,28 @@ function: |
|
|
|
|
|
|
|
|
|
|
|
<P>You can email me at "mxml <I>at</I> easysw <I>dot</I> com" to |
|
|
|
<P>You can email me at "mxml <I>at</I> easysw <I>dot</I> com" to |
|
|
|
report problems and/or ask for help. Just don't expect an |
|
|
|
report problems and/or ask for help. Just don't expect an |
|
|
|
instant response, as I get a *lot* of email... |
|
|
|
instant response, as I get a <I>lot</I> of email...</P> |
|
|
|
|
|
|
|
|
|
|
|
<H2>Legal Stuff</H2> |
|
|
|
<H2>Legal Stuff</H2> |
|
|
|
|
|
|
|
|
|
|
|
<P>The Mini-XML library is Copyright 2003 by Michael Sweet. |
|
|
|
<P>The Mini-XML library is Copyright 2003 by Michael Sweet.</P> |
|
|
|
|
|
|
|
|
|
|
|
<P>This library is free software; you can redistribute it |
|
|
|
<P>This library is free software; you can redistribute it |
|
|
|
and/or modify it under the terms of the GNU Library General |
|
|
|
and/or modify it under the terms of the GNU Library General |
|
|
|
Public License as published by the Free Software Foundation; |
|
|
|
Public License as published by the Free Software Foundation; |
|
|
|
either version 2 of the License, or (at your option) any |
|
|
|
either version 2 of the License, or (at your option) any |
|
|
|
later version. |
|
|
|
later version.</P> |
|
|
|
|
|
|
|
|
|
|
|
<P>This library is distributed in the hope that it will be |
|
|
|
<P>This library is distributed in the hope that it will be |
|
|
|
useful, but WITHOUT ANY WARRANTY; without even the implied |
|
|
|
useful, but WITHOUT ANY WARRANTY; without even the implied |
|
|
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
|
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
|
|
|
PURPOSE. See the GNU Library General Public License for |
|
|
|
PURPOSE. See the GNU Library General Public License for |
|
|
|
more details. |
|
|
|
more details.</P> |
|
|
|
|
|
|
|
|
|
|
|
<P>You should have received a copy of the GNU Library General |
|
|
|
<P>You should have received a copy of the GNU Library General |
|
|
|
Public License along with this library; if not, write to the |
|
|
|
Public License along with this library; if not, write to the |
|
|
|
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA |
|
|
|
Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA |
|
|
|
02139, USA. |
|
|
|
02139, USA.</P> |
|
|
|
|
|
|
|
|
|
|
|
</SPAN> |
|
|
|
|
|
|
|
</BODY> |
|
|
|
</BODY> |
|
|
|
</HTML> |
|
|
|
</HTML> |
|
|
|