mirror of
https://github.com/michaelrsweet/mxml.git
synced 2024-11-08 13:39:58 +00:00
Add mxml library manpage.
This commit is contained in:
parent
868e694d8d
commit
e53bff5519
19
Makefile.in
19
Makefile.in
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# "$Id: Makefile.in,v 1.6 2003/06/15 00:44:33 mike Exp $"
|
# "$Id: Makefile.in,v 1.7 2003/06/15 01:22:36 mike Exp $"
|
||||||
#
|
#
|
||||||
# Makefile for mini-XML, a small XML-like file parsing library.
|
# Makefile for mini-XML, a small XML-like file parsing library.
|
||||||
#
|
#
|
||||||
@ -53,17 +53,19 @@ BUILDROOT = $(DSTROOT)
|
|||||||
#
|
#
|
||||||
|
|
||||||
CAT1EXT = @CAT1EXT@
|
CAT1EXT = @CAT1EXT@
|
||||||
|
CAT3EXT = @CAT3EXT@
|
||||||
MAN1EXT = @MAN1EXT@
|
MAN1EXT = @MAN1EXT@
|
||||||
|
MAN3EXT = @MAN3EXT@
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Rules...
|
# Rules...
|
||||||
#
|
#
|
||||||
|
|
||||||
.SUFFIXES: .0 .1 .c .man .o
|
.SUFFIXES: .0 .1 .3 .c .man .o
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) $(CFLAGS) -c $<
|
$(CC) $(CFLAGS) -c $<
|
||||||
.man.0 .man.1:
|
.man.0 .man.1 .man.3:
|
||||||
$(RM) $@
|
$(RM) $@
|
||||||
$(NROFF) -man $< >$@
|
$(NROFF) -man $< >$@
|
||||||
|
|
||||||
@ -75,7 +77,8 @@ MAN1EXT = @MAN1EXT@
|
|||||||
DOCFILES = index.html documentation.html README COPYING CHANGES
|
DOCFILES = index.html documentation.html README COPYING CHANGES
|
||||||
LIBOBJS = mxml-attr.o mxml-file.o mxml-node.o mxml-search.o
|
LIBOBJS = mxml-attr.o mxml-file.o mxml-node.o mxml-search.o
|
||||||
OBJS = mxmldoc.o testmxml.o $(LIBOBJS)
|
OBJS = mxmldoc.o testmxml.o $(LIBOBJS)
|
||||||
TARGETS = libmxml.a mxmldoc mxmldoc.$(CAT1EXT) testmxml mxml.xml
|
TARGETS = libmxml.a mxmldoc mxml.$(CAT3EXT) mxmldoc.$(CAT1EXT) \
|
||||||
|
testmxml mxml.xml
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -111,8 +114,12 @@ install: $(TARGETS)
|
|||||||
$(CP) libmxml.a $(BUILDROOT)/$(libdir)
|
$(CP) libmxml.a $(BUILDROOT)/$(libdir)
|
||||||
-$(MKDIR) -p $(BUILDROOT)/$(mandir)/cat1
|
-$(MKDIR) -p $(BUILDROOT)/$(mandir)/cat1
|
||||||
$(CP) mxmldoc.$(CAT1EXT) $(BUILDROOT)/$(mandir)/cat1/mxmldoc.$(CAT1EXT)
|
$(CP) mxmldoc.$(CAT1EXT) $(BUILDROOT)/$(mandir)/cat1/mxmldoc.$(CAT1EXT)
|
||||||
|
-$(MKDIR) -p $(BUILDROOT)/$(mandir)/cat3
|
||||||
|
$(CP) mxml.$(CAT3EXT) $(BUILDROOT)/$(mandir)/cat3/mxml.$(CAT3EXT)
|
||||||
-$(MKDIR) -p $(BUILDROOT)/$(mandir)/man1
|
-$(MKDIR) -p $(BUILDROOT)/$(mandir)/man1
|
||||||
$(CP) mxmldoc.man $(BUILDROOT)/$(mandir)/man1/mxmldoc.$(MAN1EXT)
|
$(CP) mxmldoc.man $(BUILDROOT)/$(mandir)/man1/mxmldoc.$(MAN1EXT)
|
||||||
|
-$(MKDIR) -p $(BUILDROOT)/$(mandir)/man3
|
||||||
|
$(CP) mxml.man $(BUILDROOT)/$(mandir)/man3/mxml.$(MAN3EXT)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -125,7 +132,9 @@ uninstall:
|
|||||||
$(RM) $(BUILDROOT)/$(includedir)/mxml.h
|
$(RM) $(BUILDROOT)/$(includedir)/mxml.h
|
||||||
$(RM) $(BUILDROOT)/$(libdir)/libmxml.a
|
$(RM) $(BUILDROOT)/$(libdir)/libmxml.a
|
||||||
$(RM) $(BUILDROOT)/$(mandir)/cat1/mxmldoc.$(CAT1EXT)
|
$(RM) $(BUILDROOT)/$(mandir)/cat1/mxmldoc.$(CAT1EXT)
|
||||||
|
$(RM) $(BUILDROOT)/$(mandir)/cat3/mxml.$(CAT3EXT)
|
||||||
$(RM) $(BUILDROOT)/$(mandir)/man1/mxmldoc.$(MAN1EXT)
|
$(RM) $(BUILDROOT)/$(mandir)/man1/mxmldoc.$(MAN1EXT)
|
||||||
|
$(RM) $(BUILDROOT)/$(mandir)/man3/mxml.$(MAN3EXT)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -208,5 +217,5 @@ $(OBJS): Makefile
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# End of "$Id: Makefile.in,v 1.6 2003/06/15 00:44:33 mike Exp $".
|
# End of "$Id: Makefile.in,v 1.7 2003/06/15 01:22:36 mike Exp $".
|
||||||
#
|
#
|
||||||
|
8
configure
vendored
8
configure
vendored
@ -2637,17 +2637,23 @@ case "$uname" in
|
|||||||
# *BSD
|
# *BSD
|
||||||
CAT1EXT="0"
|
CAT1EXT="0"
|
||||||
MAN1EXT="1"
|
MAN1EXT="1"
|
||||||
|
CAT3EXT="0"
|
||||||
|
MAN3EXT="3"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
# All others
|
# All others
|
||||||
CAT1EXT="1"
|
CAT1EXT="1"
|
||||||
MAN1EXT="1"
|
MAN1EXT="1"
|
||||||
|
CAT3EXT="3"
|
||||||
|
MAN3EXT="3"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile mxml.list"
|
ac_config_files="$ac_config_files Makefile mxml.list"
|
||||||
cat >confcache <<\_ACEOF
|
cat >confcache <<\_ACEOF
|
||||||
# This file is a shell script that caches the results of configure
|
# This file is a shell script that caches the results of configure
|
||||||
@ -3249,7 +3255,9 @@ s,@GROFF@,$GROFF,;t t
|
|||||||
s,@RM@,$RM,;t t
|
s,@RM@,$RM,;t t
|
||||||
s,@ARFLAGS@,$ARFLAGS,;t t
|
s,@ARFLAGS@,$ARFLAGS,;t t
|
||||||
s,@CAT1EXT@,$CAT1EXT,;t t
|
s,@CAT1EXT@,$CAT1EXT,;t t
|
||||||
|
s,@CAT3EXT@,$CAT3EXT,;t t
|
||||||
s,@MAN1EXT@,$MAN1EXT,;t t
|
s,@MAN1EXT@,$MAN1EXT,;t t
|
||||||
|
s,@MAN3EXT@,$MAN3EXT,;t t
|
||||||
CEOF
|
CEOF
|
||||||
|
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
10
configure.in
10
configure.in
@ -1,5 +1,5 @@
|
|||||||
dnl
|
dnl
|
||||||
dnl "$Id: configure.in,v 1.3 2003/06/15 00:44:33 mike Exp $"
|
dnl "$Id: configure.in,v 1.4 2003/06/15 01:22:36 mike Exp $"
|
||||||
dnl
|
dnl
|
||||||
dnl Configuration script for mini-XML, a small XML-like file parsing library.
|
dnl Configuration script for mini-XML, a small XML-like file parsing library.
|
||||||
dnl
|
dnl
|
||||||
@ -115,20 +115,26 @@ case "$uname" in
|
|||||||
# *BSD
|
# *BSD
|
||||||
CAT1EXT="0"
|
CAT1EXT="0"
|
||||||
MAN1EXT="1"
|
MAN1EXT="1"
|
||||||
|
CAT3EXT="0"
|
||||||
|
MAN3EXT="3"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
# All others
|
# All others
|
||||||
CAT1EXT="1"
|
CAT1EXT="1"
|
||||||
MAN1EXT="1"
|
MAN1EXT="1"
|
||||||
|
CAT3EXT="3"
|
||||||
|
MAN3EXT="3"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AC_SUBST(CAT1EXT)
|
AC_SUBST(CAT1EXT)
|
||||||
|
AC_SUBST(CAT3EXT)
|
||||||
AC_SUBST(MAN1EXT)
|
AC_SUBST(MAN1EXT)
|
||||||
|
AC_SUBST(MAN3EXT)
|
||||||
|
|
||||||
dnl Output the makefile, etc...
|
dnl Output the makefile, etc...
|
||||||
AC_OUTPUT(Makefile mxml.list)
|
AC_OUTPUT(Makefile mxml.list)
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl End of "$Id: configure.in,v 1.3 2003/06/15 00:44:33 mike Exp $".
|
dnl End of "$Id: configure.in,v 1.4 2003/06/15 01:22:36 mike Exp $".
|
||||||
dnl
|
dnl
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# "$Id: mxml.list.in,v 1.1 2003/06/15 00:44:34 mike Exp $"
|
# "$Id: mxml.list.in,v 1.2 2003/06/15 01:22:37 mike Exp $"
|
||||||
#
|
#
|
||||||
# EPM software list file for mini-XML, a small XML-like file parsing library.
|
# EPM software list file for mini-XML, a small XML-like file parsing library.
|
||||||
#
|
#
|
||||||
@ -62,7 +62,9 @@ EOF
|
|||||||
|
|
||||||
# Manpage extensions...
|
# Manpage extensions...
|
||||||
$CAT1EXT=@CAT1EXT@
|
$CAT1EXT=@CAT1EXT@
|
||||||
|
$CAT3EXT=@CAT3EXT@
|
||||||
$MAN1EXT=@MAN1EXT@
|
$MAN1EXT=@MAN1EXT@
|
||||||
|
$MAN3EXT=@MAN3EXT@
|
||||||
|
|
||||||
# Executables
|
# Executables
|
||||||
f 0555 root sys ${bindir}/mxmldoc mxmldoc
|
f 0555 root sys ${bindir}/mxmldoc mxmldoc
|
||||||
@ -83,7 +85,9 @@ f 0444 root sys ${docdir}/documentation.html $srcdir/documentation.html
|
|||||||
# Man pages
|
# Man pages
|
||||||
f 0444 root sys ${mandir}/cat1/mxmldoc.$CAT1EXT $srcdir/mxmldoc.$CAT1EXT
|
f 0444 root sys ${mandir}/cat1/mxmldoc.$CAT1EXT $srcdir/mxmldoc.$CAT1EXT
|
||||||
f 0444 root sys ${mandir}/man1/mxmldoc.$MAN1EXT $srcdir/mxmldoc.man
|
f 0444 root sys ${mandir}/man1/mxmldoc.$MAN1EXT $srcdir/mxmldoc.man
|
||||||
|
f 0444 root sys ${mandir}/cat3/mxml.$CAT3EXT $srcdir/mxml.$CAT3EXT
|
||||||
|
f 0444 root sys ${mandir}/man3/mxml.$MAN3EXT $srcdir/mxml.man
|
||||||
|
|
||||||
#
|
#
|
||||||
# End of "$Id: mxml.list.in,v 1.1 2003/06/15 00:44:34 mike Exp $".
|
# End of "$Id: mxml.list.in,v 1.2 2003/06/15 01:22:37 mike Exp $".
|
||||||
#
|
#
|
||||||
|
159
mxml.man
Normal file
159
mxml.man
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
.\"
|
||||||
|
.\" "$Id: mxml.man,v 1.1 2003/06/15 01:22:37 mike Exp $"
|
||||||
|
.\"
|
||||||
|
.\" mxml man page for mini-XML, a small XML-like file parsing library.
|
||||||
|
.\"
|
||||||
|
.\" Copyright 2003 by Michael Sweet.
|
||||||
|
.\"
|
||||||
|
.\" This program is free software; you can redistribute it and/or
|
||||||
|
.\" modify it under the terms of the GNU Library General Public
|
||||||
|
.\" License as published by the Free Software Foundation; either
|
||||||
|
.\" version 2, or (at your option) any later version.
|
||||||
|
.\"
|
||||||
|
.\" This program 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 General Public License for more details.
|
||||||
|
.\"
|
||||||
|
.TH mxml 3 "mini-XML" "14 June 2003" "Michael Sweet"
|
||||||
|
.SH NAME
|
||||||
|
mxml \- mini-xml library
|
||||||
|
.SH INCLUDE FILE
|
||||||
|
#include <mxml.h>
|
||||||
|
.SH LIBRARY
|
||||||
|
-lmxml
|
||||||
|
.SH DESCRIPTION
|
||||||
|
Mini-XML is a small XML parsing library that you can use to
|
||||||
|
read XML and XML-like data files in your application without
|
||||||
|
requiring large non-standard libraries. Mini-XML only
|
||||||
|
requires an ANSI C compatible compiler (GCC works, as do
|
||||||
|
most vendors' ANSI C compilers) and a "make" program.
|
||||||
|
.PP
|
||||||
|
Mini-XML provides the following functionality:
|
||||||
|
.IP \(bu 4
|
||||||
|
Reading and writing of UTF-8 encoded XML files.
|
||||||
|
.IP \(bu 4
|
||||||
|
Data is stored in a linked-list tree structure,
|
||||||
|
preserving the XML data hierarchy.
|
||||||
|
.IP \(bu 4
|
||||||
|
Supports arbitrary element names, attributes, and attribute
|
||||||
|
values with no preset limits, just available memory.
|
||||||
|
.IP \(bu 4
|
||||||
|
Supports integer, real, opaque ("cdata"), and text data types in
|
||||||
|
"leaf" nodes.
|
||||||
|
.IP \(bu 4
|
||||||
|
Functions for creating and managing trees of data.
|
||||||
|
.IP \(bu 4
|
||||||
|
"Find" and "walk" functions for easily locating and navigating
|
||||||
|
trees of data.
|
||||||
|
.PP
|
||||||
|
Mini-XML doesn't do validation or other types of processing
|
||||||
|
on the data based upon schema files or other sources of
|
||||||
|
definition information, nor does it support character
|
||||||
|
entities other than those required by the XML
|
||||||
|
specification. Also, since Mini-XML does not support the
|
||||||
|
UTF-16 encoding, it is technically not a conforming XML
|
||||||
|
consumer/client.
|
||||||
|
.SH USING MINI-XML
|
||||||
|
Mini-XML provides a single header file which you include:
|
||||||
|
.nf
|
||||||
|
|
||||||
|
#include <mxml.h>
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Nodes are defined by the "mxml_node_t" structure; the "type"
|
||||||
|
member defines the node type (element, integer, opaque,
|
||||||
|
real, or text) which determines which value you want to look
|
||||||
|
at in the "value" union. New nodes can be created using the
|
||||||
|
"mxmlNewElement()", "mxmlNewInteger()", "mxmlNewOpaque()",
|
||||||
|
"mxmlNewReal()", and "mxmlNewText()" functions. Only
|
||||||
|
elements can have child nodes, and the top node must be an
|
||||||
|
element, usually "?xml".
|
||||||
|
.PP
|
||||||
|
You load an XML file using the "mxmlLoadFile()" function:
|
||||||
|
.nf
|
||||||
|
|
||||||
|
FILE *fp;
|
||||||
|
mxml_node_t *tree;
|
||||||
|
|
||||||
|
fp = fopen("filename.xml", "r");
|
||||||
|
tree = mxmlLoadFile(NULL, fp, MXML_NO_CALLBACK);
|
||||||
|
fclose(fp);
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Similarly, you save an XML file using the "mxmlSaveFile()"
|
||||||
|
function:
|
||||||
|
.nf
|
||||||
|
|
||||||
|
FILE *fp;
|
||||||
|
mxml_node_t *tree;
|
||||||
|
|
||||||
|
fp = fopen("filename.xml", "w");
|
||||||
|
mxmlSaveFile(tree, fp, MXML_NO_CALLBACK);
|
||||||
|
fclose(fp);
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
You can find a named element/node using the
|
||||||
|
"mxmlFindElement()" function:
|
||||||
|
.nf
|
||||||
|
|
||||||
|
mxml_node_t *node = mxmlFindElement(tree, tree, "name",
|
||||||
|
"attr", "value",
|
||||||
|
MXML_DESCEND);
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
The "name", "attr", and "value" arguments can be passed as
|
||||||
|
NULL to act as wildcards, e.g.:
|
||||||
|
.nf
|
||||||
|
|
||||||
|
/* Find the first "a" element */
|
||||||
|
node = mxmlFindElement(tree, tree, "a", NULL, NULL,
|
||||||
|
MXML_DESCEND);
|
||||||
|
|
||||||
|
/* Find the first "a" element with "href" attribute */
|
||||||
|
node = mxmlFindElement(tree, tree, "a", "href", NULL,
|
||||||
|
MXML_DESCEND);
|
||||||
|
|
||||||
|
/* Find the first "a" element with "href" to a URL */
|
||||||
|
node = mxmlFindElement(tree, tree, "a", "href",
|
||||||
|
"http://www.easysw.com/~mike/mxml/",
|
||||||
|
MXML_DESCEND);
|
||||||
|
|
||||||
|
/* Find the first element with a "src" attribute*/
|
||||||
|
node = mxmlFindElement(tree, tree, NULL, "src", NULL,
|
||||||
|
MXML_DESCEND);
|
||||||
|
|
||||||
|
/* Find the first element with a "src" = "foo.jpg" */
|
||||||
|
node = mxmlFindElement(tree, tree, NULL, "src",
|
||||||
|
"foo.jpg", MXML_DESCEND);
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
You can also iterate with the same function:
|
||||||
|
.nf
|
||||||
|
|
||||||
|
mxml_node_t *node;
|
||||||
|
|
||||||
|
for (node = mxmlFindElement(tree, tree, "name", NULL,
|
||||||
|
NULL, MXML_DESCEND);
|
||||||
|
node != NULL;
|
||||||
|
node = mxmlFindElement(node, tree, "name", NULL,
|
||||||
|
NULL, MXML_DESCEND))
|
||||||
|
{
|
||||||
|
... do something ...
|
||||||
|
}
|
||||||
|
.fi
|
||||||
|
.PP
|
||||||
|
Finally, once you are done with the XML data, use the
|
||||||
|
"mxmlDelete()" function to recursively free the memory that
|
||||||
|
is used for a particular node or the entire tree:
|
||||||
|
.nf
|
||||||
|
|
||||||
|
mxmlDelete(tree);
|
||||||
|
.fi
|
||||||
|
.SH SEE ALSO
|
||||||
|
mxmldoc(1), http://www.easysw.com/~mike/mxml/
|
||||||
|
.SH COPYRIGHT
|
||||||
|
Copyright 2003 by Michael Sweet.
|
||||||
|
.\"
|
||||||
|
.\" End of "$Id: mxml.man,v 1.1 2003/06/15 01:22:37 mike Exp $".
|
||||||
|
.\"
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# "$Id: mxml.spec,v 1.1 2003/06/15 00:44:34 mike Exp $"
|
# "$Id: mxml.spec,v 1.2 2003/06/15 01:22:37 mike Exp $"
|
||||||
#
|
#
|
||||||
# RPM "spec" file for mini-XML, a small XML-like file parsing library.
|
# RPM "spec" file for mini-XML, a small XML-like file parsing library.
|
||||||
#
|
#
|
||||||
@ -86,9 +86,13 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
/usr/share/doc/mxml/*
|
/usr/share/doc/mxml/*
|
||||||
%dir /usr/share/man/cat1
|
%dir /usr/share/man/cat1
|
||||||
/usr/share/man/cat1/*
|
/usr/share/man/cat1/*
|
||||||
|
%dir /usr/share/man/cat3
|
||||||
|
/usr/share/man/cat3/*
|
||||||
%dir /usr/share/man/man1
|
%dir /usr/share/man/man1
|
||||||
/usr/share/man/man1/*
|
/usr/share/man/man1/*
|
||||||
|
%dir /usr/share/man/man3
|
||||||
|
/usr/share/man/man3/*
|
||||||
|
|
||||||
#
|
#
|
||||||
# End of "$Id: mxml.spec,v 1.1 2003/06/15 00:44:34 mike Exp $".
|
# End of "$Id: mxml.spec,v 1.2 2003/06/15 01:22:37 mike Exp $".
|
||||||
#
|
#
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" "$Id: mxmldoc.man,v 1.1 2003/06/15 00:44:34 mike Exp $"
|
.\" "$Id: mxmldoc.man,v 1.2 2003/06/15 01:22:37 mike Exp $"
|
||||||
.\"
|
.\"
|
||||||
.\" mxmldoc man page for mini-XML, a small XML-like file parsing library.
|
.\" mxmldoc man page for mini-XML, a small XML-like file parsing library.
|
||||||
.\"
|
.\"
|
||||||
@ -40,9 +40,9 @@ code with documentation that is formatted according to the CUPS
|
|||||||
Configuration Management Plan which is available at
|
Configuration Management Plan which is available at
|
||||||
"http://www.cups.org/documentation.html".
|
"http://www.cups.org/documentation.html".
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
CUPS Configuration Management Plan.
|
mxml(3), http://www.easysw.com/~mike/mxml/
|
||||||
.SH COPYRIGHT
|
.SH COPYRIGHT
|
||||||
Copyright 2003 by Michael Sweet.
|
Copyright 2003 by Michael Sweet.
|
||||||
.\"
|
.\"
|
||||||
.\" End of "$Id: mxmldoc.man,v 1.1 2003/06/15 00:44:34 mike Exp $".
|
.\" End of "$Id: mxmldoc.man,v 1.2 2003/06/15 01:22:37 mike Exp $".
|
||||||
.\"
|
.\"
|
||||||
|
Loading…
Reference in New Issue
Block a user