mirror of
https://github.com/michaelrsweet/mxml.git
synced 2024-11-13 07:15:30 +00:00
Web page overhaul.
This commit is contained in:
parent
d82cc14298
commit
2181cfb688
@ -245,9 +245,8 @@ switch ($op)
|
||||
html_link("Modify Article #$id", "$PHP_SELF?M$id$options");
|
||||
html_end_links();
|
||||
|
||||
print("<h1>Delete Article #$id</h1>\n");
|
||||
print("<form method='post' action='$PHP_SELF?D$id'>"
|
||||
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
|
||||
."<table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
|
||||
|
||||
if (!$row['is_published'])
|
||||
print("<tr><th align='center' colspan='2'>This article is "
|
||||
@ -264,7 +263,7 @@ switch ($op)
|
||||
|
||||
print("<tr><th colspan='2'>"
|
||||
."<input type='submit' value='Confirm Delete Article'></th></tr>\n");
|
||||
print("</table></p></form>\n");
|
||||
print("</table></form>\n");
|
||||
|
||||
html_footer();
|
||||
}
|
||||
@ -308,12 +307,9 @@ switch ($op)
|
||||
print("<p align='center'><b>This article is currently hidden from "
|
||||
."public view.</b></p>\n");
|
||||
|
||||
print("<h1>Article #$id: $title</h1>\n"
|
||||
."<p><i>$date by $create_user</i><br />$abstract</p>\n"
|
||||
."<hr noshade/>\n"
|
||||
print("<p><i>$date by $create_user</i><br>$abstract</p>\n"
|
||||
."$contents\n"
|
||||
."<hr noshade/>\n"
|
||||
."<h2><a name='_USER_COMMENTS'>Comments</a></h2>\n");
|
||||
."<h1><a name='_USER_COMMENTS'>Comments</a></h1>\n");
|
||||
|
||||
html_start_links();
|
||||
html_link("Submit Comment", "comment.php?r0+particles.php_L$id");
|
||||
@ -331,15 +327,11 @@ switch ($op)
|
||||
html_link("Submit Article", "$PHP_SELF?N$options");
|
||||
html_end_links();
|
||||
|
||||
print("<h1>Articles</h1>\n");
|
||||
|
||||
print("<form method='POST' action='$PHP_SELF'><p align='center'>"
|
||||
."Search Words: <input type='text' size='60' "
|
||||
."name='SEARCH' value='$search'>"
|
||||
."<input type='submit' value='Search Articles'></p></form>\n");
|
||||
|
||||
print("<hr noshade/>\n");
|
||||
|
||||
$query = "";
|
||||
$prefix = "WHERE ";
|
||||
|
||||
@ -440,22 +432,22 @@ switch ($op)
|
||||
|
||||
if ($count > $PAGE_MAX)
|
||||
{
|
||||
print("<p><table border='0' cellspacing='0' cellpadding='0' "
|
||||
print("<table border='0' cellspacing='0' cellpadding='0' "
|
||||
."width='100%'>\n");
|
||||
|
||||
print("<tr><td>");
|
||||
if ($index > 0)
|
||||
print("[ <a href='$PHP_SELF?L+I$prev+Q" . urlencode($search)
|
||||
."'>Previous $PAGE_MAX</a> ]");
|
||||
print("<a href='$PHP_SELF?L+I$prev+Q" . urlencode($search)
|
||||
."'>Previous $PAGE_MAX</a>");
|
||||
print("</td><td align='right'>");
|
||||
if ($end < $count)
|
||||
{
|
||||
$next_count = min($PAGE_MAX, $count - $end);
|
||||
print("[ <a href='$PHP_SELF?L+I$next+Q" . urlencode($search)
|
||||
."'>Next $next_count</a> ]");
|
||||
print("<a href='$PHP_SELF?L+I$next+Q" . urlencode($search)
|
||||
."'>Next $next_count</a>");
|
||||
}
|
||||
print("</td></tr>\n");
|
||||
print("</table></p>\n");
|
||||
print("</table>\n");
|
||||
}
|
||||
|
||||
html_start_table(array("ID","Title","Last Modified", "Comment(s)"));
|
||||
@ -476,7 +468,7 @@ switch ($op)
|
||||
$temp = htmlspecialchars($row['title']);
|
||||
if ($row['is_published'] == 0)
|
||||
$temp .= " <img src='images/private.gif' width='16' height='16' "
|
||||
."border='0' align='middle' alt='Private'/>";
|
||||
."border='0' align='absmiddle' alt='Private'>";
|
||||
|
||||
print("<td align='center' width='67%'>$link$temp</a></td>");
|
||||
|
||||
@ -494,41 +486,37 @@ switch ($op)
|
||||
html_end_row();
|
||||
}
|
||||
|
||||
html_end_table();
|
||||
|
||||
if ($LOGIN_LEVEL > 0)
|
||||
{
|
||||
html_start_row("header");
|
||||
|
||||
print("<th colspan='4'> <br />Published: ");
|
||||
print("<p>Published: ");
|
||||
select_is_published();
|
||||
print("<input type='submit' value='Modify Selected Articles'/></th>\n");
|
||||
|
||||
html_end_row();
|
||||
print("<input type='submit' value='Modify Selected Articles'></p>\n");
|
||||
}
|
||||
|
||||
html_end_table();
|
||||
|
||||
if ($count > $PAGE_MAX)
|
||||
{
|
||||
print("<p><table border='0' cellspacing='0' cellpadding='0' "
|
||||
print("<table border='0' cellspacing='0' cellpadding='0' "
|
||||
."width='100%'>\n");
|
||||
|
||||
print("<tr><td>");
|
||||
if ($index > 0)
|
||||
print("[ <a href='$PHP_SELF?L+I$prev+Q" . urlencode($search)
|
||||
."'>Previous $PAGE_MAX</a> ]");
|
||||
print("<a href='$PHP_SELF?L+I$prev+Q" . urlencode($search)
|
||||
."'>Previous $PAGE_MAX</a>");
|
||||
print("</td><td align='right'>");
|
||||
if ($end < $count)
|
||||
{
|
||||
$next_count = min($PAGE_MAX, $count - $end);
|
||||
print("[ <a href='$PHP_SELF?L+I$next+Q" . urlencode($search)
|
||||
."'>Next $next_count</a> ]");
|
||||
print("<a href='$PHP_SELF?L+I$next+Q" . urlencode($search)
|
||||
."'>Next $next_count</a>");
|
||||
}
|
||||
print("</td></tr>\n");
|
||||
print("</table></p>\n");
|
||||
print("</table>\n");
|
||||
}
|
||||
|
||||
print("<p><img src='images/private.gif' width='16' height='16' "
|
||||
."align='middle' alt='private'/> = hidden from public view</p>\n");
|
||||
."align='absmiddle' alt='private'> = hidden from public view</p>\n");
|
||||
}
|
||||
|
||||
html_footer();
|
||||
@ -617,13 +605,11 @@ switch ($op)
|
||||
html_link("Article #$id", "$PHP_SELF?L$id$options");
|
||||
html_end_links();
|
||||
|
||||
print("<h1>Modify Article #$id</h1>\n");
|
||||
|
||||
if ($REQUEST_METHOD == "POST")
|
||||
{
|
||||
print("<p><b>Error:</b> Please fill in the fields marked in "
|
||||
."<b><font color='red'>bold red</font></b> below and resubmit "
|
||||
."your article.</p><hr noshade/>\n");
|
||||
."your article.</p>\n");
|
||||
|
||||
$hstart = "<font color='red'>";
|
||||
$hend = "</font>";
|
||||
@ -635,7 +621,7 @@ switch ($op)
|
||||
}
|
||||
|
||||
print("<form method='post' action='$PHP_SELF?M$id$options'>"
|
||||
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
|
||||
."<table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
|
||||
|
||||
if ($LOGIN_LEVEL >= AUTH_DEVEL)
|
||||
{
|
||||
@ -644,7 +630,7 @@ switch ($op)
|
||||
print("</td></tr>\n");
|
||||
}
|
||||
else
|
||||
print("<input type='hidden' name='IS_PUBLISHED' value='0'/>\n");
|
||||
print("<input type='hidden' name='IS_PUBLISHED' value='0'>\n");
|
||||
|
||||
$title = htmlspecialchars($title, ENT_QUOTES);
|
||||
|
||||
@ -653,7 +639,7 @@ switch ($op)
|
||||
else
|
||||
print("<tr><th align='right'>Title:</th>");
|
||||
print("<td><input type='text' name='TITLE' "
|
||||
."size='80' value='$title'/></td></tr>\n");
|
||||
."size='80' value='$title'></td></tr>\n");
|
||||
|
||||
$abstract = htmlspecialchars($abstract, ENT_QUOTES);
|
||||
|
||||
@ -662,7 +648,7 @@ switch ($op)
|
||||
else
|
||||
print("<tr><th align='right'>Abstract:</th>");
|
||||
print("<td><input type='text' name='ABSTRACT' "
|
||||
."size='80' value='$abstract'/></td></tr>\n");
|
||||
."size='80' value='$abstract'></td></tr>\n");
|
||||
|
||||
$contents = htmlspecialchars($contents, ENT_QUOTES);
|
||||
|
||||
@ -681,8 +667,8 @@ switch ($op)
|
||||
."<tt>TT</tt>, <tt>U</tt>, <tt>UL</tt></p></td></tr>\n");
|
||||
|
||||
print("<tr><th colspan='2'>"
|
||||
."<input type='submit' value='Motify Article'/></th></tr>\n");
|
||||
print("</table></p></form>\n");
|
||||
."<input type='submit' value='Motify Article'></th></tr>\n");
|
||||
print("</table></form>\n");
|
||||
|
||||
html_footer();
|
||||
}
|
||||
@ -771,13 +757,11 @@ switch ($op)
|
||||
html_link("Return to Articles", "$PHP_SELF?L$options");
|
||||
html_end_links();
|
||||
|
||||
print("<h1>Submit Article</h1>\n");
|
||||
|
||||
if ($REQUEST_METHOD == "POST")
|
||||
{
|
||||
print("<p><b>Error:</b> Please fill in the fields marked in "
|
||||
."<b><font color='red'>bold red</font></b> below and resubmit "
|
||||
."your article.</p><hr noshade/>\n");
|
||||
."your article.</p>\n");
|
||||
|
||||
$hstart = "<font color='red'>";
|
||||
$hend = "</font>";
|
||||
@ -788,15 +772,14 @@ switch ($op)
|
||||
."examples, and case studies showing how you use $PROJECT_NAME. "
|
||||
."We will proofread your article, and if we determine it is "
|
||||
."appropriate for the site, we will make the article public "
|
||||
."on the site. <i>Thank you</i> for supporting $PROJECT_NAME!</p>\n"
|
||||
."<hr noshade/>\n");
|
||||
."on the site. <i>Thank you</i> for supporting $PROJECT_NAME!</p>\n");
|
||||
|
||||
$hstart = "";
|
||||
$hend = "";
|
||||
}
|
||||
|
||||
print("<form method='post' action='$PHP_SELF?N$options'>"
|
||||
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
|
||||
."<table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
|
||||
|
||||
if ($LOGIN_LEVEL >= AUTH_DEVEL)
|
||||
{
|
||||
@ -805,7 +788,7 @@ switch ($op)
|
||||
print("</td></tr>\n");
|
||||
}
|
||||
else
|
||||
print("<input type='hidden' name='IS_PUBLISHED' value='0'/>\n");
|
||||
print("<input type='hidden' name='IS_PUBLISHED' value='0'>\n");
|
||||
|
||||
$title = htmlspecialchars($title, ENT_QUOTES);
|
||||
|
||||
@ -814,7 +797,7 @@ switch ($op)
|
||||
else
|
||||
print("<tr><th align='right'>Title:</th>");
|
||||
print("<td><input type='text' name='TITLE' "
|
||||
."size='80' value='$title'/></td></tr>\n");
|
||||
."size='80' value='$title'></td></tr>\n");
|
||||
|
||||
$abstract = htmlspecialchars($abstract, ENT_QUOTES);
|
||||
|
||||
@ -823,7 +806,7 @@ switch ($op)
|
||||
else
|
||||
print("<tr><th align='right'>Abstract:</th>");
|
||||
print("<td><input type='text' name='ABSTRACT' "
|
||||
."size='80' value='$abstract'/></td></tr>\n");
|
||||
."size='80' value='$abstract'></td></tr>\n");
|
||||
|
||||
$create_user = htmlspecialchars($create_user, ENT_QUOTES);
|
||||
|
||||
@ -834,10 +817,10 @@ switch ($op)
|
||||
|
||||
if ($LOGIN_USER != "" && $LOGIN_LEVEL < AUTH_DEVEL)
|
||||
print("<td><input type='hidden' name='CREATE_USER' "
|
||||
."value='$create_user'/>$create_user</td></tr>\n");
|
||||
."value='$create_user'>$create_user</td></tr>\n");
|
||||
else
|
||||
print("<td><input type='text' name='CREATE_USER' "
|
||||
."size='40' value='$create_user'/></td></tr>\n");
|
||||
."size='40' value='$create_user'></td></tr>\n");
|
||||
|
||||
$contents = htmlspecialchars($contents, ENT_QUOTES);
|
||||
|
||||
@ -856,8 +839,8 @@ switch ($op)
|
||||
."<tt>TT</tt>, <tt>U</tt>, <tt>UL</tt></p></td></tr>\n");
|
||||
|
||||
print("<tr><th colspan='2'>"
|
||||
."<input type='submit' value='Submit Article'/></th></tr>\n");
|
||||
print("</table></p></form>\n");
|
||||
."<input type='submit' value='Submit Article'></th></tr>\n");
|
||||
print("</table></form>\n");
|
||||
|
||||
html_footer();
|
||||
break;
|
||||
|
@ -67,10 +67,9 @@ else
|
||||
{
|
||||
case 'd' : // Delete comment
|
||||
html_header("Delete Comment #$id");
|
||||
print("<h1>Delete Comment #$id</h1>\n");
|
||||
print("<p>Click the button below to confirm the deletion.</p>\n"
|
||||
."<form method='POST' action='$PHP_SELF?D$id+p$path'>"
|
||||
."<center><input type='submit' value='Delete Comment'/></center>"
|
||||
."<center><input type='submit' value='Delete Comment'></center>"
|
||||
."</form>\n");
|
||||
html_footer();
|
||||
break;
|
||||
@ -193,15 +192,9 @@ else
|
||||
else
|
||||
{
|
||||
if ($id)
|
||||
{
|
||||
html_header("Edit Comment");
|
||||
print("<h1>Edit Comment</h1>\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
html_header("Add Comment");
|
||||
print("<h1>Add Comment</h1>\n");
|
||||
}
|
||||
|
||||
if ($REQUEST_METHOD == "POST")
|
||||
{
|
||||
@ -228,11 +221,11 @@ else
|
||||
if ($create_user == "")
|
||||
print("<tr><th align='right'>${hstart}Author:${hend}</th>"
|
||||
."<td><input type='text' name='AUTHOR' value='$create_user' "
|
||||
."size='40'/></td></tr>\n");
|
||||
."size='40'></td></tr>\n");
|
||||
else
|
||||
print("<tr><th align='right'>Author:</th>"
|
||||
."<td><input type='text' name='AUTHOR' value='$create_user' "
|
||||
."size='40'/></td></tr>\n");
|
||||
."size='40'></td></tr>\n");
|
||||
|
||||
$contents = htmlspecialchars($contents);
|
||||
if ($contents == "")
|
||||
@ -255,7 +248,7 @@ else
|
||||
{
|
||||
print("<tr><th align='right' nowrap>File Path:</th>"
|
||||
."<td><input type='text' name='FILE' value='$path' "
|
||||
."size='40'/></td></tr>\n");
|
||||
."size='40'></td></tr>\n");
|
||||
print("<tr><th align='right'>Score:</th>"
|
||||
."<td><select name='STATUS'>");
|
||||
for ($i = 0; $i <= 5; $i ++)
|
||||
@ -267,14 +260,14 @@ else
|
||||
}
|
||||
else
|
||||
{
|
||||
print("<input type='hidden' name='FILE' value='$path'/>\n");
|
||||
print("<input type='hidden' name='STATUS' value='2'/>\n");
|
||||
print("<input type='hidden' name='FILE' value='$path'>\n");
|
||||
print("<input type='hidden' name='STATUS' value='2'>\n");
|
||||
}
|
||||
|
||||
if ($id)
|
||||
print("<tr><th></th><td><input type='submit' value='Update'/></td></tr>\n");
|
||||
print("<tr><th></th><td><input type='submit' value='Update Comment'></td></tr>\n");
|
||||
else
|
||||
print("<tr><th></th><td><input type='submit' value='Add'/></td></tr>\n");
|
||||
print("<tr><th></th><td><input type='submit' value='Add Comment'></td></tr>\n");
|
||||
|
||||
print("</table></center>\n"
|
||||
."</form>\n");
|
||||
@ -286,7 +279,6 @@ else
|
||||
case 'L' : // List all comments...
|
||||
case 'l' : // List unapproved comments...
|
||||
html_header("Comments");
|
||||
print("<h1>Comments</h1>\n");
|
||||
|
||||
if ($LOGIN_LEVEL < AUTH_DEVEL)
|
||||
{
|
||||
@ -299,13 +291,13 @@ else
|
||||
{
|
||||
$result = db_query("SELECT * FROM comment WHERE "
|
||||
."url LIKE '${listpath}%' ORDER BY id");
|
||||
print("<p>[ <a href='$PHP_SELF?l'>Show Hidden Comments</a> ]</p>\n");
|
||||
print("<p><a href='$PHP_SELF?l'>Show Hidden Comments</a></p>\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = db_query("SELECT * FROM comment WHERE status = 0 AND "
|
||||
."url LIKE '${listpath}%' ORDER BY id");
|
||||
print("<p>[ <a href='$PHP_SELF?L'>Show All Comments</a> ]</p>\n");
|
||||
print("<p><a href='$PHP_SELF?L'>Show All Comments</a></p>\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -329,9 +321,9 @@ else
|
||||
|
||||
print("<li><a href='$location'>$row[url]</a> "
|
||||
." by $create_user on $create_date "
|
||||
."[ <a href='$PHP_SELF?e$row[id]+p$row[url]'>Edit</a> "
|
||||
."| <a href='$PHP_SELF?d$row[id]+p$row[url]'>Delete</a> "
|
||||
."]<br /><tt>$contents</tt></li>\n");
|
||||
."<a href='$PHP_SELF?e$row[id]+p$row[url]'>Edit</a> "
|
||||
."· <a href='$PHP_SELF?d$row[id]+p$row[url]'>Delete</a>"
|
||||
."<br><tt>$contents</tt></li>\n");
|
||||
}
|
||||
|
||||
print("</ul>\n");
|
||||
|
@ -1,66 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="NotationConventions.html">
|
||||
<LINK REL="Next" HREF="OtherReferences.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="NotationConventions.html">Previous</A>
|
||||
<A HREF="OtherReferences.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="1_3">Abbreviations</A></H2>
|
||||
<P>The following abbreviations are used throughout this manual:</P>
|
||||
<DL>
|
||||
<DT>Gb</DT>
|
||||
<DD>Gigabytes, or 1073741824 bytes
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>kb</DT>
|
||||
<DD>Kilobytes, or 1024 bytes
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>Mb</DT>
|
||||
<DD>Megabytes, or 1048576 bytes
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>UTF-8, UTF-16</DT>
|
||||
<DD>Unicode Transformation Format, 8-bit or 16-bit
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>W3C</DT>
|
||||
<DD>World Wide Web Consortium
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>XML</DT>
|
||||
<DD>Extensible Markup Language
|
||||
<BR>
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<!-- NEED 12 -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="NotationConventions.html">Previous</A>
|
||||
<A HREF="OtherReferences.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,46 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="LegalStuff.html">
|
||||
<LINK REL="Next" HREF="CompilingMiniXML.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LegalStuff.html">Previous</A>
|
||||
<A HREF="CompilingMiniXML.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="INSTALL"><IMG align="right" alt="1" height="100"
|
||||
hspace="10" src="1.gif" width="100"></A>Building, Installing, and
|
||||
Packaging Mini-XML</H1>
|
||||
<P>This chapter describes how to build, install, and package Mini-XML on
|
||||
your system from the source archive. You will need an ANSI/ISO-C
|
||||
compatible compiler to build Mini-XML - GCC works, as do most vendors'
|
||||
C compilers. If you are building Mini-XML on Windows, we recommend
|
||||
using the Visual C++ environment with the supplied solution file. For
|
||||
other operating systems, you'll need a POSIX-compatible shell and <TT>
|
||||
make</TT> program in addition to the C compiler.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LegalStuff.html">Previous</A>
|
||||
<A HREF="CompilingMiniXML.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,55 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="CustomDataTypes.html">
|
||||
<LINK REL="Next" HREF="FormattedText.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CustomDataTypes.html">Previous</A>
|
||||
<A HREF="FormattedText.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="4_4">Changing Node Values</A></H2>
|
||||
<P>All of the examples so far have concentrated on creating and loading
|
||||
new XML data nodes. Many applications, however, need to manipulate or
|
||||
change the nodes during their operation, so Mini-XML provides functions
|
||||
to change node values safely and without leaking memory.</P>
|
||||
<P>Existing nodes can be changed using the <A href="mxmlSetElement.html#mxmlSetElement">
|
||||
<TT>mxmlSetElement()</TT></A>, <A href="mxmlSetInteger.html#mxmlSetInteger">
|
||||
<TT>mxmlSetInteger()</TT></A>, <A href="mxmlSetOpaque.html#mxmlSetOpaque">
|
||||
<TT>mxmlSetOpaque()</TT></A>, <A href="mxmlSetReal.html#mxmlSetReal"><TT>
|
||||
mxmlSetReal()</TT></A>, <A href="mxmlSetText.html#mxmlSetText"><TT>
|
||||
mxmlSetText()</TT></A>, and <A href="mxmlSetTextf.html#mxmlSetTextf"><TT>
|
||||
mxmlSetTextf()</TT></A> functions. For example, use the following
|
||||
function call to change a text node to contain the text "new" with
|
||||
leading whitespace:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
mxmlSetText(node, 1, "new");
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CustomDataTypes.html">Previous</A>
|
||||
<A HREF="FormattedText.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,102 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="TheBasics1.html">
|
||||
<LINK REL="Next" HREF="TitlesSectionsandIntroductions.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="TheBasics1.html">Previous</A>
|
||||
<A HREF="TitlesSectionsandIntroductions.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="5_2">Commenting Your Code</A></H2>
|
||||
<P>As noted previously, <TT>mxmldoc</TT> looks for in-line comments to
|
||||
describe the functions, types, and constants in your code. <TT>Mxmldoc</TT>
|
||||
will document all public names it finds in your source files - any
|
||||
names starting with the underscore character (_) or names that are
|
||||
documented with the <A HREF="#ATDIRECTIVES">@private@</A> directive are
|
||||
treated as private and are undocumented.</P>
|
||||
<P>Comments appearing directly before a function or type definition are
|
||||
used to document that function or type. Comments appearing after
|
||||
argument, definition, return type, or variable declarations are used to
|
||||
document that argument, definition, return type, or variable. For
|
||||
example, the following code excerpt defines a key/value structure and a
|
||||
function that creates a new instance of that structure:</P>
|
||||
<PRE>
|
||||
/* A key/value pair. This is used with the
|
||||
dictionary structure. */
|
||||
|
||||
struct keyval
|
||||
{
|
||||
char *key; /* Key string */
|
||||
char *val; /* Value string */
|
||||
};
|
||||
|
||||
/* Create a new key/value pair. */
|
||||
|
||||
struct keyval * /* New key/value pair */
|
||||
new_keyval(
|
||||
const char *key, /* Key string */
|
||||
const char *val) /* Value string */
|
||||
{
|
||||
...
|
||||
}
|
||||
</PRE>
|
||||
<P><TT>Mxmldoc</TT> also knows to remove extra asterisks (*) from the
|
||||
comment string, so the comment string:</P>
|
||||
<PRE>
|
||||
/*
|
||||
* Compute the value of PI.
|
||||
*
|
||||
* The function connects to an Internet server
|
||||
* that streams audio of mathematical monks
|
||||
* chanting the first 100 digits of PI.
|
||||
*/
|
||||
</PRE>
|
||||
<P>will be shown as:</P>
|
||||
<PRE>
|
||||
Compute the value of PI.
|
||||
|
||||
The function connects to an Internet server
|
||||
that streams audio of mathematical monks
|
||||
chanting the first 100 digits of PI.
|
||||
</PRE>
|
||||
<P><A name="ATDIRECTIVES">Comments</A> can also include the following
|
||||
special <TT>@name ...@</TT> directive strings:</P>
|
||||
<UL>
|
||||
<LI><TT>@deprecated@</TT> - flags the item as deprecated to discourage
|
||||
its use</LI>
|
||||
<LI><TT>@private@</TT> - flags the item as private so it will not be
|
||||
included in the documentation</LI>
|
||||
<LI><TT>@since ...@</TT> - flags the item as new since a particular
|
||||
release. The text following the <TT>@since</TT> up to the closing <TT>@</TT>
|
||||
is highlighted in the generated documentation, e.g. <TT>@since CUPS
|
||||
1.3@</TT>.</LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="TheBasics1.html">Previous</A>
|
||||
<A HREF="TitlesSectionsandIntroductions.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,40 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="BuildingInstallingandPackagingMiniXML.html">
|
||||
<LINK REL="Next" HREF="CompilingwithVisualC.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="BuildingInstallingandPackagingMiniXML.html">Previous</A>
|
||||
<A HREF="CompilingwithVisualC.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="2_1">Compiling Mini-XML</A></H2>
|
||||
<P>Mini-XML comes with both an autoconf-based configure script and a
|
||||
Visual C++ solution that can be used to compile the library and
|
||||
associated tools.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="BuildingInstallingandPackagingMiniXML.html">Previous</A>
|
||||
<A HREF="CompilingwithVisualC.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="CompilingwithVisualC.html">
|
||||
<LINK REL="Next" HREF="InstallingMiniXML.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CompilingwithVisualC.html">Previous</A>
|
||||
<A HREF="InstallingMiniXML.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3><A NAME="2_1_2">Compiling with Command-Line Tools</A></H3>
|
||||
<P>Type the following command to configure the Mini-XML source code for
|
||||
your system:</P>
|
||||
<PRE>
|
||||
<KBD>./configure ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The default install prefix is<VAR> /usr/local</VAR>, which can be
|
||||
overridden using the <KBD>--prefix</KBD> option:</P>
|
||||
<PRE>
|
||||
<KBD>./configure --prefix=/foo ENTER</KBD>
|
||||
</PRE>
|
||||
<P>Other configure options can be found using the <KBD>--help</KBD>
|
||||
option:</P>
|
||||
<PRE>
|
||||
<KBD>./configure --help ENTER</KBD>
|
||||
</PRE>
|
||||
<P>Once you have configured the software, use the <TT>make(1)</TT>
|
||||
program to do the build and run the test program to verify that things
|
||||
are working, as follows:</P>
|
||||
<PRE>
|
||||
<KBD>make ENTER</KBD>
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CompilingwithVisualC.html">Previous</A>
|
||||
<A HREF="InstallingMiniXML.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,41 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="CompilingMiniXML.html">
|
||||
<LINK REL="Next" HREF="CompilingwithCommandLineTools.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CompilingMiniXML.html">Previous</A>
|
||||
<A HREF="CompilingwithCommandLineTools.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3><A NAME="2_1_1">Compiling with Visual C++</A></H3>
|
||||
<P>Open the<VAR> mxml.sln</VAR> solution in the<VAR> vcnet</VAR> folder.
|
||||
Choose the desired build configuration, "Debug" (the default) or
|
||||
"Release", and then choose<VAR> Build Solution</VAR> from the<VAR>
|
||||
Build</VAR> menu.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CompilingMiniXML.html">Previous</A>
|
||||
<A HREF="CompilingwithCommandLineTools.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,46 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="LibraryReference.html">
|
||||
<LINK REL="Next" HREF="Enumerations.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LibraryReference.html">Previous</A>
|
||||
<A HREF="Enumerations.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2 class="title"><A NAME="8_1">Contents</A></H2>
|
||||
<UL>
|
||||
<LI><A href="Enumerations.html#ENUMERATIONS">Enumerations</A></LI>
|
||||
<LI><A href="Functions.html#FUNCTIONS">Functions</A></LI>
|
||||
<LI><A href="Structures.html#STRUCTURES">Structures</A></LI>
|
||||
<LI><A href="Types.html#TYPES">Types</A></LI>
|
||||
<LI><A href="Unions.html#UNIONS">Unions</A></LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LibraryReference.html">Previous</A>
|
||||
<A HREF="Enumerations.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,50 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="SavingXML.html">
|
||||
<LINK REL="Next" HREF="FindingandIteratingNodes.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="SavingXML.html">Previous</A>
|
||||
<A HREF="FindingandIteratingNodes.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3><A NAME="3_5_1">Controlling Line Wrapping</A></H3>
|
||||
<P>When saving XML documents, Mini-XML normally wraps output lines at
|
||||
column 75 so that the text is readable in terminal windows. The <A href="MiniXML23mxmlSetWrapMargin.html#mxmlSetWrapMargin">
|
||||
<TT>mxmlSetWrapMargin</TT></A> function overrides the default wrap
|
||||
margin:</P>
|
||||
<PRE>
|
||||
/* Set the margin to 132 columns */
|
||||
mxmlSetWrapMargin(132);
|
||||
|
||||
/* Disable wrapping */
|
||||
mxmlSetWrapMargin(0);
|
||||
</PRE>
|
||||
|
||||
<!-- NEW PAGE-->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="SavingXML.html">Previous</A>
|
||||
<A HREF="FindingandIteratingNodes.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,65 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="InstallingMiniXML.html">
|
||||
<LINK REL="Next" HREF="GettingStartedwithMiniXML.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="InstallingMiniXML.html">Previous</A>
|
||||
<A HREF="GettingStartedwithMiniXML.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="2_3">Creating Mini-XML Packages</A></H2>
|
||||
<P>Mini-XML includes two files that can be used to create binary
|
||||
packages. The first file is<VAR> mxml.spec</VAR> which is used by the <TT>
|
||||
rpmbuild(8)</TT> software to create Red Hat Package Manager ("RPM")
|
||||
packages which are commonly used on Linux. Since <TT>rpmbuild</TT>
|
||||
wants to compile the software on its own, you can provide it with the
|
||||
Mini-XML tar file to build the package:</P>
|
||||
<PRE>
|
||||
<KBD>rpmbuild -ta mxml-<I>version</I>.tar.gz ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The second file is<VAR> mxml.list</VAR> which is used by the <TT>
|
||||
epm(1)</TT> program to create software packages in a variety of formats.
|
||||
The <TT>epm</TT> program is available from the following URL:</P>
|
||||
<PRE>
|
||||
<A href="http://www.easysw.com/epm/">http://www.easysw.com/epm/</A>
|
||||
</PRE>
|
||||
<P>Use the <TT>make</TT> command with the <KBD>epm</KBD> target to
|
||||
create portable and native packages for your system:</P>
|
||||
<PRE>
|
||||
<KBD>make epm ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The packages are stored in a subdirectory named<VAR> dist</VAR> for
|
||||
your convenience. The portable packages utilize scripts and tar files
|
||||
to install the software on the target system. After extracting the
|
||||
package archive, use the<VAR> mxml.install</VAR> script to install the
|
||||
software.</P>
|
||||
<P>The native packages will be in the local OS's native format: RPM for
|
||||
Red Hat Linux, DPKG for Debian Linux, PKG for Solaris, and so forth.
|
||||
Use the corresponding commands to install the native packages.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="InstallingMiniXML.html">Previous</A>
|
||||
<A HREF="GettingStartedwithMiniXML.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,98 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="Nodes.html">
|
||||
<LINK REL="Next" HREF="LoadingXML.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Nodes.html">Previous</A>
|
||||
<A HREF="LoadingXML.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="3_3">Creating XML Documents</A></H2>
|
||||
<P>You can create and update XML documents in memory using the various <TT>
|
||||
mxmlNew</TT> functions. The following code will create the XML document
|
||||
described in the previous section:</P>
|
||||
<PRE>
|
||||
mxml_node_t *xml; /* <?xml ... ?> */
|
||||
mxml_node_t *data; /* <data> */
|
||||
mxml_node_t *node; /* <node> */
|
||||
mxml_node_t *group; /* <group> */
|
||||
|
||||
xml = mxmlNewXML("1.0");
|
||||
|
||||
data = mxmlNewElement(xml, "data");
|
||||
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val1");
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val2");
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val3");
|
||||
|
||||
group = mxmlNewElement(data, "group");
|
||||
|
||||
node = mxmlNewElement(group, "node");
|
||||
mxmlNewText(node, 0, "val4");
|
||||
node = mxmlNewElement(group, "node");
|
||||
mxmlNewText(node, 0, "val5");
|
||||
node = mxmlNewElement(group, "node");
|
||||
mxmlNewText(node, 0, "val6");
|
||||
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val7");
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val8");
|
||||
</PRE>
|
||||
<P>We start by creating the <TT><?xml version="1.0"?></TT> node common
|
||||
to all XML files using the <A href="MiniXML23mxmlNewXML.html#mxmlNewXML">
|
||||
<TT>mxmlNewXML</TT></A> function:</P>
|
||||
<PRE>
|
||||
xml = mxmlNewXML("1.0");
|
||||
</PRE>
|
||||
<P>We then create the <TT><data></TT> node used for this document using
|
||||
the <A href="mxmlNewElement.html#mxmlNewElement"><TT>mxmlNewElement</TT>
|
||||
</A> function. The first argument specifies the parent node (<TT>xml</TT>
|
||||
) while the second specifies the element name (<TT>data</TT>):</P>
|
||||
<PRE>
|
||||
data = mxmlNewElement(xml, "data");
|
||||
</PRE>
|
||||
<P>Each <TT><node>...</node></TT> in the file is created using the <TT>
|
||||
mxmlNewElement</TT> and <A href="mxmlNewText.html#mxmlNewText"><TT>
|
||||
mxmlNewText</TT></A> functions. The first argument of <TT>mxmlNewText</TT>
|
||||
specifies the parent node (<TT>node</TT>). The second argument
|
||||
specifies whether whitespace appears before the text - 0 or false in
|
||||
this case. The last argument specifies the actual text to add:</P>
|
||||
<PRE>
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val1");
|
||||
</PRE>
|
||||
<P>The resulting in-memory XML document can then be saved or processed
|
||||
just like one loaded from disk or a string.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Nodes.html">Previous</A>
|
||||
<A HREF="LoadingXML.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,176 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="SaveCallbacks.html">
|
||||
<LINK REL="Next" HREF="ChangingNodeValues.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="SaveCallbacks.html">Previous</A>
|
||||
<A HREF="ChangingNodeValues.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="4_3">Custom Data Types</A></H2>
|
||||
<P>Mini-XML supports custom data types via global load and save
|
||||
callbacks. Only a single set of callbacks can be active at any time,
|
||||
however your callbacks can store additional information in order to
|
||||
support multiple custom data types as needed. The <TT>MXML_CUSTOM</TT>
|
||||
node type identifies custom data nodes.</P>
|
||||
<P>The load callback receives a pointer to the current data node and a
|
||||
string of opaque character data from the XML source with character
|
||||
entities converted to the corresponding UTF-8 characters. For example,
|
||||
if we wanted to support a custom date/time type whose value is encoded
|
||||
as "yyyy-mm-ddThh:mm:ssZ" (ISO format), the load callback would look
|
||||
like the following:</P>
|
||||
<PRE>
|
||||
typedef struct
|
||||
{
|
||||
unsigned year, /* Year */
|
||||
month, /* Month */
|
||||
day, /* Day */
|
||||
hour, /* Hour */
|
||||
minute, /* Minute */
|
||||
second; /* Second */
|
||||
time_t unix; /* UNIX time */
|
||||
} iso_date_time_t;
|
||||
|
||||
int
|
||||
load_custom(mxml_node_t *node,
|
||||
const char *data)
|
||||
{
|
||||
iso_date_time_t *dt;
|
||||
struct tm tmdata;
|
||||
|
||||
/*
|
||||
* Allocate data structure...
|
||||
*/
|
||||
|
||||
dt = calloc(1, sizeof(iso_date_time_t));
|
||||
|
||||
/*
|
||||
* Try reading 6 unsigned integers from the
|
||||
* data string...
|
||||
*/
|
||||
|
||||
if (sscanf(data, "%u-%u-%uT%u:%u:%uZ",
|
||||
&(dt->year), &(dt->month),
|
||||
&(dt->day), &(dt->hour),
|
||||
&(dt->minute),
|
||||
&(dt->second)) != 6)
|
||||
{
|
||||
/*
|
||||
* Unable to read numbers, free the data
|
||||
* structure and return an error...
|
||||
*/
|
||||
|
||||
free(dt);
|
||||
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Range check values...
|
||||
*/
|
||||
|
||||
if (dt->month <1 || dt->month > 12 ||
|
||||
dt->day <1 || dt->day > 31 ||
|
||||
dt->hour <0 || dt->hour > 23 ||
|
||||
dt->minute <0 || dt->minute > 59 ||
|
||||
dt->second <0 || dt->second > 59)
|
||||
{
|
||||
/*
|
||||
* Date information is out of range...
|
||||
*/
|
||||
|
||||
free(dt);
|
||||
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert ISO time to UNIX time in
|
||||
* seconds...
|
||||
*/
|
||||
|
||||
tmdata.tm_year = dt->year - 1900;
|
||||
tmdata.tm_mon = dt->month - 1;
|
||||
tmdata.tm_day = dt->day;
|
||||
tmdata.tm_hour = dt->hour;
|
||||
tmdata.tm_min = dt->minute;
|
||||
tmdata.tm_sec = dt->second;
|
||||
|
||||
dt->unix = gmtime(&tmdata);
|
||||
|
||||
/*
|
||||
* Assign custom node data and destroy
|
||||
* function pointers...
|
||||
*/
|
||||
|
||||
node->value.custom.data = dt;
|
||||
node->value.custom.destroy = free;
|
||||
|
||||
/*
|
||||
* Return with no errors...
|
||||
*/
|
||||
|
||||
return (0);
|
||||
}
|
||||
</PRE>
|
||||
<P>The function itself can return 0 on success or -1 if it is unable to
|
||||
decode the custom data or the data contains an error. Custom data nodes
|
||||
contain a <TT>void</TT> pointer to the allocated custom data for the
|
||||
node and a pointer to a destructor function which will free the custom
|
||||
data when the node is deleted.</P>
|
||||
<P>The save callback receives the node pointer and returns an allocated
|
||||
string containing the custom data value. The following save callback
|
||||
could be used for our ISO date/time type:</P>
|
||||
<PRE>
|
||||
char *
|
||||
save_custom(mxml_node_t *node)
|
||||
{
|
||||
char data[255];
|
||||
iso_date_time_t *dt;
|
||||
|
||||
|
||||
dt = (iso_date_time_t *)node->custom.data;
|
||||
|
||||
snprintf(data, sizeof(data),
|
||||
"%04u-%02u-%02uT%02u:%02u:%02uZ",
|
||||
dt->year, dt->month, dt->day,
|
||||
dt->hour, dt->minute, dt->second);
|
||||
|
||||
return (strdup(data));
|
||||
}
|
||||
</PRE>
|
||||
<P>You register the callback functions using the <A href="mxmlSetCustomHandlers.html#mxmlSetCustomHandlers">
|
||||
<TT>mxmlSetCustomHandlers()</TT></A> function:</P>
|
||||
<PRE>
|
||||
mxmlSetCustomHandlers(<B>load_custom</B>,
|
||||
<B>save_custom</B>);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 20 -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="SaveCallbacks.html">Previous</A>
|
||||
<A HREF="ChangingNodeValues.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,44 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="Contents.html">
|
||||
<LINK REL="Next" HREF="mxmlsaxevente.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Contents.html">Previous</A>
|
||||
<A HREF="mxmlsaxevente.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2 class="title"><A name="ENUMERATIONS">Enumerations</A></H2>
|
||||
<UL>
|
||||
<LI><A href="mxmlsaxevente.html#mxml_sax_event_e"><TT>mxml_sax_event_e</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmltypee.html#mxml_type_e"><TT>mxml_type_e</TT></A></LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Contents.html">Previous</A>
|
||||
<A HREF="mxmlsaxevente.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,158 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="ControllingLineWrapping.html">
|
||||
<LINK REL="Next" HREF="MoreMiniXMLProgrammingTechniques.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="ControllingLineWrapping.html">Previous</A>
|
||||
<A HREF="MoreMiniXMLProgrammingTechniques.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="3_6">Finding and Iterating Nodes</A></H2>
|
||||
<P>The <A href="mxmlWalkPrev.html#mxmlWalkPrev"><TT>mxmlWalkPrev</TT></A>
|
||||
and <A href="mxmlWalkNext.html#mxmlWalkNext"><TT>mxmlWalkNext</TT></A>
|
||||
functions can be used to iterate through the XML node tree:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
node = mxmlWalkPrev(current, tree,
|
||||
MXML_DESCEND);
|
||||
|
||||
node = mxmlWalkNext(current, tree,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
<P>In addition, you can find a named element/node using the <A href="mxmlFindElement.html#mxmlFindElement">
|
||||
<TT>mxmlFindElement</TT></A> function:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
node = mxmlFindElement(tree, tree, "name",
|
||||
"attr", "value",
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
<P>The <TT>name</TT>, <TT>attr</TT>, and <TT>value</TT> arguments can be
|
||||
passed as <TT>NULL</TT> to act as wildcards, e.g.:</P>
|
||||
|
||||
<!-- NEED 4 -->
|
||||
<PRE>
|
||||
/* Find the first "a" element */
|
||||
node = mxmlFindElement(tree, tree, "a",
|
||||
NULL, NULL,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 5 -->
|
||||
<PRE>
|
||||
/* Find the first "a" element with "href"
|
||||
attribute */
|
||||
node = mxmlFindElement(tree, tree, "a",
|
||||
"href", NULL,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 6 -->
|
||||
<PRE>
|
||||
/* Find the first "a" element with "href"
|
||||
to a URL */
|
||||
node = mxmlFindElement(tree, tree, "a",
|
||||
"href",
|
||||
"http://www.easysw.com/",
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 5 -->
|
||||
<PRE>
|
||||
/* Find the first element with a "src"
|
||||
attribute */
|
||||
node = mxmlFindElement(tree, tree, NULL,
|
||||
"src", NULL,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 5 -->
|
||||
<PRE>
|
||||
/* Find the first element with a "src"
|
||||
= "foo.jpg" */
|
||||
node = mxmlFindElement(tree, tree, NULL,
|
||||
"src", "foo.jpg",
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
<P>You can also iterate with the same function:</P>
|
||||
<PRE>
|
||||
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 ...
|
||||
}
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<P>The <TT>MXML_DESCEND</TT> argument can actually be one of three
|
||||
constants:</P>
|
||||
<UL>
|
||||
<LI><TT>MXML_NO_DESCEND</TT> means to not to look at any child nodes in
|
||||
the element hierarchy, just look at siblings at the same level or
|
||||
parent nodes until the top node or top-of-tree is reached.
|
||||
<P>The previous node from "group" would be the "node" element to the
|
||||
left, while the next node from "group" would be the "node" element to
|
||||
the right.
|
||||
<BR>
|
||||
<BR></P>
|
||||
</LI>
|
||||
<LI><TT>MXML_DESCEND_FIRST</TT> means that it is OK to descend to the
|
||||
first child of a node, but not to descend further when searching.
|
||||
You'll normally use this when iterating through direct children of a
|
||||
parent node, e.g. all of the "node" and "group" elements under the
|
||||
"?xml" parent node in the example above.
|
||||
<P>This mode is only applicable to the search function; the walk
|
||||
functions treat this as <TT>MXML_DESCEND</TT> since every call is a
|
||||
first time.
|
||||
<BR>
|
||||
<BR></P>
|
||||
</LI>
|
||||
<LI><TT>MXML_DESCEND</TT> means to keep descending until you hit the
|
||||
bottom of the tree. The previous node from "group" would be the "val3"
|
||||
node and the next node would be the first node element under "group".
|
||||
<P>If you were to walk from the root node "?xml" to the end of the tree
|
||||
with <TT>mxmlWalkNext()</TT>, the order would be:</P>
|
||||
<P><TT>?xml data node val1 node val2 node val3 group node val4 node val5
|
||||
node val6 node val7 node val8</TT></P>
|
||||
<P>If you started at "val8" and walked using <TT>mxmlWalkPrev()</TT>,
|
||||
the order would be reversed, ending at "?xml".</P>
|
||||
</LI>
|
||||
</UL>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="ControllingLineWrapping.html">Previous</A>
|
||||
<A HREF="MoreMiniXMLProgrammingTechniques.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,49 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="ChangingNodeValues.html">
|
||||
<LINK REL="Next" HREF="Indexing.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="ChangingNodeValues.html">Previous</A>
|
||||
<A HREF="Indexing.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="4_5">Formatted Text</A></H2>
|
||||
<P>The <A href="mxmlNewTextf.html#mxmlNewTextf"><TT>mxmlNewTextf()</TT></A>
|
||||
and <A href="mxmlSetTextf.html#mxmlSetTextf"><TT>mxmlSetTextf()</TT></A>
|
||||
functions create and change text nodes, respectively, using <TT>printf</TT>
|
||||
-style format strings and arguments. For example, use the following
|
||||
function call to create a new text node containing a constructed
|
||||
filename:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
node = mxmlNewTextf(node, 1, "%s/%s",
|
||||
path, filename);
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="ChangingNodeValues.html">Previous</A>
|
||||
<A HREF="Indexing.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,147 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmltypee.html">
|
||||
<LINK REL="Next" HREF="mxmlAdd.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmltypee.html">Previous</A>
|
||||
<A HREF="mxmlAdd.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2 class="title"><A name="FUNCTIONS">Functions</A></H2>
|
||||
<UL>
|
||||
<LI><A href="mxmlAdd.html#mxmlAdd"><TT>mxmlAdd()</TT></A></LI>
|
||||
<LI><A href="mxmlDelete.html#mxmlDelete"><TT>mxmlDelete()</TT></A></LI>
|
||||
<LI><A href="mxmlElementGetAttr.html#mxmlElementGetAttr"><TT>
|
||||
mxmlElementGetAttr()</TT></A></LI>
|
||||
<LI><A href="mxmlElementSetAttr.html#mxmlElementSetAttr"><TT>
|
||||
mxmlElementSetAttr()</TT></A></LI>
|
||||
<LI><A href="MiniXML23mxmlElementSetAttrf.html#mxmlElementSetAttrf"><TT>
|
||||
mxmlElementSetAttrf()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="mxmlEntityAddCallback.html#mxmlEntityAddCallback"><TT>
|
||||
mxmlEntityAddCallback()</TT></A></LI>
|
||||
<LI><A href="mxmlEntityGetName.html#mxmlEntityGetName"><TT>
|
||||
mxmlEntityGetName()</TT></A></LI>
|
||||
<LI><A href="mxmlEntityGetValue.html#mxmlEntityGetValue"><TT>
|
||||
mxmlEntityGetValue()</TT></A></LI>
|
||||
<LI><A href="mxmlEntityRemoveCallback.html#mxmlEntityRemoveCallback"><TT>
|
||||
mxmlEntityRemoveCallback()</TT></A></LI>
|
||||
<LI><A href="mxmlFindElement.html#mxmlFindElement"><TT>mxmlFindElement()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmlIndexDelete.html#mxmlIndexDelete"><TT>mxmlIndexDelete()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmlIndexEnum.html#mxmlIndexEnum"><TT>mxmlIndexEnum()</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlIndexFind.html#mxmlIndexFind"><TT>mxmlIndexFind()</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlIndexNew.html#mxmlIndexNew"><TT>mxmlIndexNew()</TT></A></LI>
|
||||
<LI><A href="mxmlIndexReset.html#mxmlIndexReset"><TT>mxmlIndexReset()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmlLoadFd.html#mxmlLoadFd"><TT>mxmlLoadFd()</TT></A></LI>
|
||||
<LI><A href="mxmlLoadFile.html#mxmlLoadFile"><TT>mxmlLoadFile()</TT></A></LI>
|
||||
<LI><A href="mxmlLoadString.html#mxmlLoadString"><TT>mxmlLoadString()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="MiniXML23mxmlNewCDATA.html#mxmlNewCDATA"><TT>mxmlNewCDATA()</TT>
|
||||
</A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="MiniXML21mxmlNewCustom.html#mxmlNewCustom"><TT>
|
||||
mxmlNewCustom()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 </LI>
|
||||
<LI><A href="mxmlNewElement.html#mxmlNewElement"><TT>mxmlNewElement()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmlNewInteger.html#mxmlNewInteger"><TT>mxmlNewInteger()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmlNewOpaque.html#mxmlNewOpaque"><TT>mxmlNewOpaque()</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlNewReal.html#mxmlNewReal"><TT>mxmlNewReal()</TT></A></LI>
|
||||
<LI><A href="mxmlNewText.html#mxmlNewText"><TT>mxmlNewText()</TT></A></LI>
|
||||
<LI><A href="mxmlNewTextf.html#mxmlNewTextf"><TT>mxmlNewTextf()</TT></A></LI>
|
||||
<LI><A href="MiniXML23mxmlNewXML.html#mxmlNewXML"><TT>mxmlNewXML()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="MiniXML23mxmlRelease.html#mxmlRelease"><TT>mxmlRelease()</TT>
|
||||
</A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="mxmlRemove.html#mxmlRemove"><TT>mxmlRemove()</TT></A></LI>
|
||||
<LI><A href="MiniXML23mxmlRetain.html#mxmlRetain"><TT>mxmlRetain()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="MiniXML23mxmlSAXLoadFd.html#mxmlSAXLoadFd"><TT>
|
||||
mxmlSAXLoadFd()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="MiniXML23mxmlSAXLoadFile.html#mxmlSAXLoadFile"><TT>
|
||||
mxmlSAXLoadFile()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="MiniXML23mxmlSAXLoadString.html#mxmlSAXLoadString"><TT>
|
||||
mxmlSAXLoadString()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="mxmlSaveAllocString.html#mxmlSaveAllocString"><TT>
|
||||
mxmlSaveAllocString()</TT></A></LI>
|
||||
<LI><A href="mxmlSaveFd.html#mxmlSaveFd"><TT>mxmlSaveFd()</TT></A></LI>
|
||||
<LI><A href="mxmlSaveFile.html#mxmlSaveFile"><TT>mxmlSaveFile()</TT></A></LI>
|
||||
<LI><A href="mxmlSaveString.html#mxmlSaveString"><TT>mxmlSaveString()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="MiniXML23mxmlSetCDATA.html#mxmlSetCDATA"><TT>mxmlSetCDATA()</TT>
|
||||
</A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="MiniXML21mxmlSetCustom.html#mxmlSetCustom"><TT>
|
||||
mxmlSetCustom()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 </LI>
|
||||
<LI><A href="mxmlSetCustomHandlers.html#mxmlSetCustomHandlers"><TT>
|
||||
mxmlSetCustomHandlers()</TT></A></LI>
|
||||
<LI><A href="mxmlSetElement.html#mxmlSetElement"><TT>mxmlSetElement()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmlSetErrorCallback.html#mxmlSetErrorCallback"><TT>
|
||||
mxmlSetErrorCallback()</TT></A></LI>
|
||||
<LI><A href="mxmlSetInteger.html#mxmlSetInteger"><TT>mxmlSetInteger()</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmlSetOpaque.html#mxmlSetOpaque"><TT>mxmlSetOpaque()</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlSetReal.html#mxmlSetReal"><TT>mxmlSetReal()</TT></A></LI>
|
||||
<LI><A href="mxmlSetText.html#mxmlSetText"><TT>mxmlSetText()</TT></A></LI>
|
||||
<LI><A href="mxmlSetTextf.html#mxmlSetTextf"><TT>mxmlSetTextf()</TT></A></LI>
|
||||
<LI><A href="MiniXML23mxmlSetWrapMargin.html#mxmlSetWrapMargin"><TT>
|
||||
mxmlSetWrapMargin()</TT></A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 </LI>
|
||||
<LI><A href="mxmlWalkNext.html#mxmlWalkNext"><TT>mxmlWalkNext()</TT></A></LI>
|
||||
<LI><A href="mxmlWalkPrev.html#mxmlWalkPrev"><TT>mxmlWalkPrev()</TT></A></LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmltypee.html">Previous</A>
|
||||
<A HREF="mxmlAdd.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,56 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="CreatingMiniXMLPackages.html">
|
||||
<LINK REL="Next" HREF="TheBasics.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CreatingMiniXMLPackages.html">Previous</A>
|
||||
<A HREF="TheBasics.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="BASICS"><IMG align="right" alt="2" height="100"
|
||||
hspace="10" src="2.gif" width="100"></A>Getting Started with Mini-XML</H1>
|
||||
<P>This chapter describes how to write programs that use Mini-XML to
|
||||
access data in an XML file. Mini-XML provides the following
|
||||
functionality:</P>
|
||||
<UL>
|
||||
<LI>Functions for creating and managing XML documents in memory.</LI>
|
||||
<LI>Reading of UTF-8 and UTF-16 encoded XML files and strings.</LI>
|
||||
<LI>Writing of UTF-8 encoded XML files and strings.</LI>
|
||||
<LI>Support for arbitrary element names, attributes, and attribute
|
||||
values with no preset limits, just available memory.</LI>
|
||||
<LI>Support for integer, real, opaque ("cdata"), and text data types in
|
||||
"leaf" nodes.</LI>
|
||||
<LI>"Find", "index", and "walk" functions for easily accessing data in
|
||||
an XML document.</LI>
|
||||
</UL>
|
||||
<P>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.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CreatingMiniXMLPackages.html">Previous</A>
|
||||
<A HREF="TheBasics.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,111 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="FormattedText.html">
|
||||
<LINK REL="Next" HREF="SAXStreamLoadingofDocuments.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="FormattedText.html">Previous</A>
|
||||
<A HREF="SAXStreamLoadingofDocuments.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="4_6">Indexing</A></H2>
|
||||
<P>Mini-XML provides functions for managing indices of nodes. The
|
||||
current implementation provides the same functionality as <A href="mxmlFindElement.html#mxmlFindElement">
|
||||
<TT>mxmlFindElement()</TT></A>. The advantage of using an index is that
|
||||
searching and enumeration of elements is significantly faster. The only
|
||||
disadvantage is that each index is a static snapshot of the XML
|
||||
document, so indices are not well suited to XML data that is updated
|
||||
more often than it is searched. The overhead of creating an index is
|
||||
approximately equal to walking the XML document tree. Nodes in the
|
||||
index are sorted by element name and attribute value.</P>
|
||||
<P>Indices are stored in <A href="mxmlindext.html#mxml_index_t"><TT>
|
||||
mxml_index_t</TT></A> structures. The <A href="mxmlIndexNew.html#mxmlIndexNew">
|
||||
<TT>mxmlIndexNew()</TT></A> function creates a new index:</P>
|
||||
<PRE>
|
||||
mxml_node_t *tree;
|
||||
mxml_index_t *ind;
|
||||
|
||||
ind = mxmlIndexNew(tree, "element",
|
||||
"attribute");
|
||||
</PRE>
|
||||
<P>The first argument is the XML node tree to index. Normally this will
|
||||
be a pointer to the <TT>?xml</TT> element.</P>
|
||||
<P>The second argument contains the element to index; passing <TT>NULL</TT>
|
||||
indexes all element nodes alphabetically.</P>
|
||||
<P>The third argument contains the attribute to index; passing <TT>NULL</TT>
|
||||
causes only the element name to be indexed.</P>
|
||||
<P>Once the index is created, the <A href="mxmlIndexEnum.html#mxmlIndexEnum">
|
||||
<TT>mxmlIndexEnum()</TT></A>, <A href="mxmlIndexFind.html#mxmlIndexFind">
|
||||
<TT>mxmlIndexFind()</TT></A>, and <A href="mxmlIndexReset.html#mxmlIndexReset">
|
||||
<TT>mxmlIndexReset()</TT></A> functions are used to access the nodes in
|
||||
the index. The <A href="mxmlIndexReset.html#mxmlIndexReset"><TT>
|
||||
mxmlIndexReset()</TT></A> function resets the "current" node pointer in
|
||||
the index, allowing you to do new searches and enumerations on the same
|
||||
index. Typically you will call this function prior to your calls to <A href="mxmlIndexEnum.html#mxmlIndexEnum">
|
||||
<TT>mxmlIndexEnum()</TT></A> and <A href="mxmlIndexFind.html#mxmlIndexFind">
|
||||
<TT>mxmlIndexFind()</TT></A>.</P>
|
||||
<P>The <A href="mxmlIndexEnum.html#mxmlIndexEnum"><TT>mxmlIndexEnum()</TT>
|
||||
</A> function enumerates each of the nodes in the index and can be used
|
||||
in a loop as follows:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
mxmlIndexReset(ind);
|
||||
|
||||
while ((node = mxmlIndexEnum(ind)) != NULL)
|
||||
{
|
||||
// do something with node
|
||||
}
|
||||
</PRE>
|
||||
<P>The <A href="mxmlIndexFind.html#mxmlIndexFind"><TT>mxmlIndexFind()</TT>
|
||||
</A> function locates the next occurrence of the named element and
|
||||
attribute value in the index. It can be used to find all matching
|
||||
elements in an index, as follows:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
mxmlIndexReset(ind);
|
||||
|
||||
while ((node = mxmlIndexFind(ind, "element",
|
||||
"attr-value"))
|
||||
!= NULL)
|
||||
{
|
||||
// do something with node
|
||||
}
|
||||
</PRE>
|
||||
<P>The second and third arguments represent the element name and
|
||||
attribute value, respectively. A <TT>NULL</TT> pointer is used to
|
||||
return all elements or attributes in the index. Passing <TT>NULL</TT>
|
||||
for both the element name and attribute value is equivalent to calling <TT>
|
||||
mxmlIndexEnum</TT>.</P>
|
||||
<P>When you are done using the index, delete it using the <A href="#mxmlIndexDelete()">
|
||||
<TT>mxmlIndexDelete()</TT></A> function:</P>
|
||||
<PRE>
|
||||
mxmlIndexDelete(ind);
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="FormattedText.html">Previous</A>
|
||||
<A HREF="SAXStreamLoadingofDocuments.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,45 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="CompilingwithCommandLineTools.html">
|
||||
<LINK REL="Next" HREF="CreatingMiniXMLPackages.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CompilingwithCommandLineTools.html">Previous</A>
|
||||
<A HREF="CreatingMiniXMLPackages.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="2_2">Installing Mini-XML</A></H2>
|
||||
<P>If you are using Visual C++, copy the<VAR> mxml.lib</VAR> and and<VAR>
|
||||
mxml.h</VAR> files to the Visual C++<VAR> lib</VAR> and<VAR> include<VAR>
|
||||
directories, respectively.</VAR></VAR></P>
|
||||
<P>Otherwise, use the <TT>make</TT> command with the <KBD>install</KBD>
|
||||
target to install Mini-XML in the configured directories:</P>
|
||||
<PRE>
|
||||
<KBD>make install ENTER</KBD>
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CompilingwithCommandLineTools.html">Previous</A>
|
||||
<A HREF="CreatingMiniXMLPackages.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,68 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Next" HREF="OrganizationofThisDocument.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="OrganizationofThisDocument.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100"
|
||||
hspace="10" src="0.gif" width="100"></A>Introduction</H1>
|
||||
<P>This programmers manual describes Mini-XML version 2.3, a small XML
|
||||
parsing library that you can use to read and write XML data files in
|
||||
your C and C++ applications.</P>
|
||||
<P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/">
|
||||
Gutenprint</A> project to replace the rather large and unwieldy <TT>
|
||||
libxml2</TT> library with something substantially smaller and
|
||||
easier-to-use. It all began one morning in June of 2003 when Robert
|
||||
posted the following sentence to the developer's list:</P>
|
||||
<BLOCKQUOTE><EM>It's bad enough that we require libxml2, but rolling our
|
||||
own XML parser is a bit more than we can handle.</EM></BLOCKQUOTE>
|
||||
<P>I then replied with:</P>
|
||||
<BLOCKQUOTE><EM>Given the limited scope of what you use in XML, it
|
||||
should be trivial to code a mini-XML API in a few hundred lines of
|
||||
code.</EM></BLOCKQUOTE>
|
||||
<P>I took my own challenge and coded furiously for two days to produced
|
||||
the initial public release of Mini-XML, total lines of code: 696.
|
||||
Robert promptly integrated Mini-XML into Gutenprint and removed
|
||||
libxml2.</P>
|
||||
<P>Thanks to lots of feedback and support from various developers,
|
||||
Mini-XML has evolved since then to provide a more complete XML
|
||||
implementation and now stands at a whopping 3,441 lines of code,
|
||||
compared to 103,893 lines of code for libxml2 version 2.6.9.</P>
|
||||
<P>Aside from Gutenprint, Mini-XML is used for the following
|
||||
projects/software applications:</P>
|
||||
<UL>
|
||||
<LI><A href="http://www.cups.org/">Common UNIX Printing System</A></LI>
|
||||
<LI><A href="http://www.cups.org/ddk/">CUPS Driver Development Kit</A></LI>
|
||||
<LI><A href="http://www.easysw.com/printpro/">ESP Print Pro</A></LI>
|
||||
<LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI>
|
||||
</UL>
|
||||
<P>Please email me (mxml @ easysw . com) if you would like your project
|
||||
added or removed from this list, or if you have any comments/quotes you
|
||||
would like me to publish about your experiences with Mini-XML.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="OrganizationofThisDocument.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,47 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="OtherReferences.html">
|
||||
<LINK REL="Next" HREF="BuildingInstallingandPackagingMiniXML.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="OtherReferences.html">Previous</A>
|
||||
<A HREF="BuildingInstallingandPackagingMiniXML.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="1_5">Legal Stuff</A></H2>
|
||||
<P>The Mini-XML library is copyright 2003-2007 by Michael Sweet.</P>
|
||||
<P>This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the <A href="MiniXMLLicense.html#LICENSE">GNU
|
||||
Library General Public License</A> as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any
|
||||
later version.</P>
|
||||
<P>This library 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
|
||||
Library General Public License for more details.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="OtherReferences.html">Previous</A>
|
||||
<A HREF="BuildingInstallingandPackagingMiniXML.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,38 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="ReleaseNotes.html">
|
||||
<LINK REL="Next" HREF="Contents.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="ReleaseNotes.html">Previous</A>
|
||||
<A HREF="Contents.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="REFERENCE"><IMG align="right" alt="C" height="100"
|
||||
hspace="10" src="C.gif" width="100"></A>Library Reference</H1>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="ReleaseNotes.html">Previous</A>
|
||||
<A HREF="Contents.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,101 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MoreMiniXMLProgrammingTechniques.html">
|
||||
<LINK REL="Next" HREF="SaveCallbacks.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MoreMiniXMLProgrammingTechniques.html">Previous</A>
|
||||
<A HREF="SaveCallbacks.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A name="LOAD_CALLBACKS">Load Callbacks</A></H2>
|
||||
<P><A href="#LOAD_XML">Chapter 2</A> introduced the <A href="mxmlLoadFile.html#mxmlLoadFile">
|
||||
<TT>mxmlLoadFile()</TT></A> and <A href="mxmlLoadString.html#mxmlLoadString">
|
||||
<TT>mxmlLoadString()</TT></A> functions. The last argument to these
|
||||
functions is a callback function which is used to determine the value
|
||||
type of each data node in an XML document.</P>
|
||||
<P>Mini-XML defines several standard callbacks for simple XML data
|
||||
files:</P>
|
||||
<UL>
|
||||
<LI><TT>MXML_INTEGER_CALLBACK</TT> - All data nodes contain
|
||||
whitespace-separated integers.</LI>
|
||||
<LI><TT>MXML_OPAQUE_CALLBACK</TT> - All data nodes contain opaque
|
||||
strings ("CDATA").</LI>
|
||||
<LI><TT>MXML_REAL_CALLBACK</TT> - All data nodes contain
|
||||
whitespace-separated floating-point numbers.</LI>
|
||||
<LI><TT>MXML_TEXT_CALLBACK</TT> - All data nodes contain
|
||||
whitespace-separated strings.</LI>
|
||||
</UL>
|
||||
<P>You can provide your own callback functions for more complex XML
|
||||
documents. Your callback function will receive a pointer to the current
|
||||
element node and must return the value type of the immediate children
|
||||
for that element node: <TT>MXML_INTEGER</TT>, <TT>MXML_OPAQUE</TT>, <TT>
|
||||
MXML_REAL</TT>, or <TT>MXML_TEXT</TT>. The function is called<I> after</I>
|
||||
the element and its attributes have been read, so you can look at the
|
||||
element name, attributes, and attribute values to determine the proper
|
||||
value type to return.</P>
|
||||
|
||||
<!-- NEED 2in -->
|
||||
<P>The following callback function looks for an attribute named "type"
|
||||
or the element name to determine the value type for its child nodes:</P>
|
||||
<PRE>
|
||||
mxml_type_t
|
||||
type_cb(mxml_node_t *node)
|
||||
{
|
||||
const char *type;
|
||||
|
||||
/*
|
||||
* You can lookup attributes and/or use the
|
||||
* element name, hierarchy, etc...
|
||||
*/
|
||||
|
||||
type = mxmlElementGetAttr(node, "type");
|
||||
if (type == NULL)
|
||||
type = node->value.element.name;
|
||||
|
||||
if (!strcmp(type, "integer"))
|
||||
return (MXML_INTEGER);
|
||||
else if (!strcmp(type, "opaque"))
|
||||
return (MXML_OPAQUE);
|
||||
else if (!strcmp(type, "real"))
|
||||
return (MXML_REAL);
|
||||
else
|
||||
return (MXML_TEXT);
|
||||
}
|
||||
</PRE>
|
||||
<P>To use this callback function, simply use the name when you call any
|
||||
of the load functions:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "r");
|
||||
tree = mxmlLoadFile(NULL, fp, <B>type_cb</B>);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MoreMiniXMLProgrammingTechniques.html">Previous</A>
|
||||
<A HREF="SaveCallbacks.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,84 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="CreatingXMLDocuments.html">
|
||||
<LINK REL="Next" HREF="SavingXML.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CreatingXMLDocuments.html">Previous</A>
|
||||
<A HREF="SavingXML.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="3_4">Loading XML</A></H2>
|
||||
<P>You load an XML file using the <A href="mxmlLoadFile.html#mxmlLoadFile">
|
||||
<TT>mxmlLoadFile</TT></A> function:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "r");
|
||||
tree = mxmlLoadFile(NULL, fp,
|
||||
MXML_TEXT_CALLBACK);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
<P>The first argument specifies an existing XML parent node, if any.
|
||||
Normally you will pass <TT>NULL</TT> for this argument unless you are
|
||||
combining multiple XML sources. The XML file must contain a complete
|
||||
XML document including the <TT>?xml</TT> element if the parent node is <TT>
|
||||
NULL</TT>.</P>
|
||||
<P>The second argument specifies the stdio file to read from, as opened
|
||||
by <TT>fopen()</TT> or <TT>popen()</TT>. You can also use <TT>stdin</TT>
|
||||
if you are implementing an XML filter program.</P>
|
||||
<P>The third argument specifies a callback function which returns the
|
||||
value type of the immediate children for a new element node: <TT>
|
||||
MXML_CUSTOM</TT>, <TT>MXML_IGNORE</TT>, <TT>MXML_INTEGER</TT>, <TT>
|
||||
MXML_OPAQUE</TT>, <TT>MXML_REAL</TT>, or <TT>MXML_TEXT</TT>. Load
|
||||
callbacks are described in detail in <A href="LoadCallbacks.html#LOAD_CALLBACKS">
|
||||
Chapter 3</A>. The example code uses the <TT>MXML_TEXT_CALLBACK</TT>
|
||||
constant which specifies that all data nodes in the document contain
|
||||
whitespace-separated text values. Other standard callbacks include <TT>
|
||||
MXML_IGNORE_CALLBACK</TT>, <TT>MXML_INTEGER_CALLBACK</TT>, <TT>
|
||||
MXML_OPAQUE_CALLBACK</TT>, and <TT>MXML_REAL_CALLBACK</TT>.</P>
|
||||
<P>The <A href="mxmlLoadString.html#mxmlLoadString"><TT>mxmlLoadString</TT>
|
||||
</A> function loads XML node trees from a string:</P>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<PRE>
|
||||
char buffer[8192];
|
||||
mxml_node_t *tree;
|
||||
|
||||
...
|
||||
tree = mxmlLoadString(NULL, buffer,
|
||||
MXML_TEXT_CALLBACK);
|
||||
</PRE>
|
||||
<P>The first and third arguments are the same as used for <TT>
|
||||
mxmlLoadFile()</TT>. The second argument specifies the string or
|
||||
character buffer to load and must be a complete XML document including
|
||||
the <TT>?xml</TT> element if the parent node is <TT>NULL</TT>.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CreatingXMLDocuments.html">Previous</A>
|
||||
<A HREF="SavingXML.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,65 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlNewCDATA.html">
|
||||
<LINK REL="Next" HREF="mxmlNewElement.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlNewCDATA.html">Previous</A>
|
||||
<A HREF="mxmlNewElement.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_20">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 <A name="mxmlNewCustom">mxmlNewCustom()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new custom data node.</P>
|
||||
<P>The new custom node is added to the end of the specified parent's
|
||||
child list. The constant MXML_NO_PARENT can be used to specify that the
|
||||
new element node has no parent. NULL can be passed when the data in the
|
||||
node is not dynamically allocated or is separately managed.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewCustom( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* parent, void * data, <A href="mxmlcustomdestroycbt.html#mxml_custom_destroy_cb_t">
|
||||
mxml_custom_destroy_cb_t</A> destroy);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>data</TT></TD><TD>Pointer to data</TD></TR>
|
||||
<TR><TD><TT>destroy</TT></TD><TD>Function to destroy data</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlNewCDATA.html">Previous</A>
|
||||
<A HREF="mxmlNewElement.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,62 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlSetCDATA.html">
|
||||
<LINK REL="Next" HREF="mxmlSetCustomHandlers.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSetCDATA.html">Previous</A>
|
||||
<A HREF="mxmlSetCustomHandlers.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_39">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 <A name="mxmlSetCustom">mxmlSetCustom()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the data and destructor of a custom data node.</P>
|
||||
<P>The node is not changed if it is not a custom node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetCustom( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, void * data, <A href="mxmlcustomdestroycbt.html#mxml_custom_destroy_cb_t">
|
||||
mxml_custom_destroy_cb_t</A> destroy);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>data</TT></TD><TD>New data pointer</TD></TR>
|
||||
<TR><TD><TT>destroy</TT></TD><TD>New destructor function</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSetCDATA.html">Previous</A>
|
||||
<A HREF="mxmlSetCustomHandlers.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlattrs.html">
|
||||
<LINK REL="Next" HREF="mxmlelements.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlattrs.html">Previous</A>
|
||||
<A HREF="mxmlelements.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_4_2">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 <A name="mxml_custom_s">mxml_custom_s</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>An XML custom value.</P>
|
||||
<H4>Definition</H4>
|
||||
<P> <TT>struct mxml_custom_s
|
||||
<BR> {
|
||||
<BR> void * data;
|
||||
<BR> <A href="mxmlcustomdestroycbt.html#mxml_custom_destroy_cb_t">
|
||||
mxml_custom_destroy_cb_t</A> destroy;
|
||||
<BR> };</TT></P>
|
||||
<H4>Members</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" summary="Members" width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>data</TT></TD><TD>Pointer to (allocated) custom data</TD></TR>
|
||||
<TR><TD><TT>destroy</TT></TD><TD>Pointer to destructor function</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlattrs.html">Previous</A>
|
||||
<A HREF="mxmlelements.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,46 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlcustomsavecbt.html">
|
||||
<LINK REL="Next" HREF="mxmlelementt.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlcustomsavecbt.html">Previous</A>
|
||||
<A HREF="mxmlelementt.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_5_5">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 <A name="mxml_custom_t">mxml_custom_t</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>An XML custom value.</P>
|
||||
<H4>Definition</H4>
|
||||
<P> <TT>typedef struct <A href="MiniXML21mxmlcustoms.html#mxml_custom_s">
|
||||
mxml_custom_s</A> mxml_custom_t;</TT></P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlcustomsavecbt.html">Previous</A>
|
||||
<A HREF="mxmlelementt.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,67 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlElementSetAttr.html">
|
||||
<LINK REL="Next" HREF="mxmlEntityAddCallback.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlElementSetAttr.html">Previous</A>
|
||||
<A HREF="mxmlEntityAddCallback.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_5">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlElementSetAttrf">mxmlElementSetAttrf()</A></A>
|
||||
</H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set an attribute with a formatted value.</P>
|
||||
<P>If the named attribute already exists, the value of the attribute is
|
||||
replaced by the new formatted string. The formatted string value is
|
||||
copied into the element node. This function does nothing if the node is
|
||||
not an element.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlElementSetAttrf( <A href="mxmlnodet.html#mxml_node_t">
|
||||
mxml_node_t</A> * node, const char * name, const char * format, ...);</TT>
|
||||
</P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Element node</TD></TR>
|
||||
<TR><TD><TT>name</TT></TD><TD>Name of attribute</TD></TR>
|
||||
<TR><TD><TT>format</TT></TD><TD>Printf-style attribute value</TD></TR>
|
||||
<TR><TD><TT>...</TT></TD><TD>Additional arguments as needed</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlElementSetAttr.html">Previous</A>
|
||||
<A HREF="mxmlEntityAddCallback.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,63 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlLoadString.html">
|
||||
<LINK REL="Next" HREF="MiniXML21mxmlNewCustom.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlLoadString.html">Previous</A>
|
||||
<A HREF="MiniXML21mxmlNewCustom.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_19">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlNewCDATA">mxmlNewCDATA()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new CDATA node.</P>
|
||||
<P>The new CDATA node is added to the end of the specified parent's
|
||||
child list. The constant MXML_NO_PARENT can be used to specify that the
|
||||
new CDATA node has no parent. The data string must be nul-terminated
|
||||
and is copied into the new node. CDATA nodes use the MXML_ELEMENT type.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewCDATA( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* parent, const char * data);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>data</TT></TD><TD>Data string</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlLoadString.html">Previous</A>
|
||||
<A HREF="MiniXML21mxmlNewCustom.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,59 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlNewTextf.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlRelease.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewTextf.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlRelease.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_27">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlNewXML">mxmlNewXML()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new XML document tree.</P>
|
||||
<P>The "version" argument specifies the version number to put in the
|
||||
?xml element node. If NULL, version 1.0 is assumed.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewXML( const char * version);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>version</TT></TD><TD>Version number to use</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New ?xml node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewTextf.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlRelease.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,60 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlNewXML.html">
|
||||
<LINK REL="Next" HREF="mxmlRemove.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlNewXML.html">Previous</A>
|
||||
<A HREF="mxmlRemove.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_28">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlRelease">mxmlRelease()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Release a node.</P>
|
||||
<P>When the reference count reaches zero, the node (and any children) is
|
||||
deleted via mxmlDelete().</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlRelease( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
node);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New reference count</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlNewXML.html">Previous</A>
|
||||
<A HREF="mxmlRemove.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlRemove.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlSAXLoadFd.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlRemove.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFd.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_30">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlRetain">mxmlRetain()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Retain a node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlRetain( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
node);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New reference count</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlRemove.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFd.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,76 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlRetain.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlSAXLoadFile.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlRetain.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFile.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_31">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlSAXLoadFd">mxmlSAXLoadFd()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Load a file descriptor into an XML node tree using a SAX callback.</P>
|
||||
<P>The nodes in the specified file are added to the specified top node.
|
||||
If no top node is provided, the XML file MUST be well-formed with a
|
||||
single parent node like <?xml> for the entire file. The callback
|
||||
function returns the value type that should be used for child nodes. If
|
||||
MXML_NO_CALLBACK is specified then all child nodes will be either
|
||||
MXML_ELEMENT or MXML_TEXT nodes.</P>
|
||||
<P>The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK,
|
||||
MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading
|
||||
child nodes of the specified type.</P>
|
||||
<P>The SAX callback must call mxmlRetain() for any nodes that need to be
|
||||
kept for later use. Otherwise, nodes are deleted when the parent node
|
||||
is closed or after each data, comment, CDATA, or directive node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlSAXLoadFd( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* top, int fd, <A href="mxmlloadcbt.html#mxml_load_cb_t">mxml_load_cb_t</A>
|
||||
cb, <A href="mxmlsaxcbt.html#mxml_sax_cb_t">mxml_sax_cb_t</A> sax_cb,
|
||||
void * sax_data);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>fd</TT></TD><TD>File descriptor to read from</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Callback function or MXML_NO_CALLBACK</TD></TR>
|
||||
<TR><TD><TT>sax_cb</TT></TD><TD>SAX callback or MXML_NO_CALLBACK</TD></TR>
|
||||
<TR><TD><TT>sax_data</TT></TD><TD>SAX user data</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>First node or NULL if the file could not be read.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlRetain.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFile.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,76 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlSAXLoadFd.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlSAXLoadString.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFd.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadString.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_32">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlSAXLoadFile">mxmlSAXLoadFile()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Load a file into an XML node tree using a SAX callback.</P>
|
||||
<P>The nodes in the specified file are added to the specified top node.
|
||||
If no top node is provided, the XML file MUST be well-formed with a
|
||||
single parent node like <?xml> for the entire file. The callback
|
||||
function returns the value type that should be used for child nodes. If
|
||||
MXML_NO_CALLBACK is specified then all child nodes will be either
|
||||
MXML_ELEMENT or MXML_TEXT nodes.</P>
|
||||
<P>The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK,
|
||||
MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading
|
||||
child nodes of the specified type.</P>
|
||||
<P>The SAX callback must call mxmlRetain() for any nodes that need to be
|
||||
kept for later use. Otherwise, nodes are deleted when the parent node
|
||||
is closed or after each data, comment, CDATA, or directive node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlSAXLoadFile( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* top, FILE * fp, <A href="mxmlloadcbt.html#mxml_load_cb_t">
|
||||
mxml_load_cb_t</A> cb, <A href="mxmlsaxcbt.html#mxml_sax_cb_t">
|
||||
mxml_sax_cb_t</A> sax_cb, void * sax_data);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>fp</TT></TD><TD>File to read from</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Callback function or MXML_NO_CALLBACK</TD></TR>
|
||||
<TR><TD><TT>sax_cb</TT></TD><TD>SAX callback or MXML_NO_CALLBACK</TD></TR>
|
||||
<TR><TD><TT>sax_data</TT></TD><TD>SAX user data</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>First node or NULL if the file could not be read.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFd.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadString.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,76 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlSAXLoadFile.html">
|
||||
<LINK REL="Next" HREF="mxmlSaveAllocString.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFile.html">Previous</A>
|
||||
<A HREF="mxmlSaveAllocString.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_33">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlSAXLoadString">mxmlSAXLoadString()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Load a string into an XML node tree using a SAX callback.</P>
|
||||
<P>The nodes in the specified string are added to the specified top
|
||||
node. If no top node is provided, the XML string MUST be well-formed
|
||||
with a single parent node like <?xml> for the entire string. The
|
||||
callback function returns the value type that should be used for child
|
||||
nodes. If MXML_NO_CALLBACK is specified then all child nodes will be
|
||||
either MXML_ELEMENT or MXML_TEXT nodes.</P>
|
||||
<P>The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK,
|
||||
MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading
|
||||
child nodes of the specified type.</P>
|
||||
<P>The SAX callback must call mxmlRetain() for any nodes that need to be
|
||||
kept for later use. Otherwise, nodes are deleted when the parent node
|
||||
is closed or after each data, comment, CDATA, or directive node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlSAXLoadString( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* top, const char * s, <A href="mxmlloadcbt.html#mxml_load_cb_t">
|
||||
mxml_load_cb_t</A> cb, <A href="mxmlsaxcbt.html#mxml_sax_cb_t">
|
||||
mxml_sax_cb_t</A> sax_cb, void * sax_data);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>s</TT></TD><TD>String to load</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Callback function or MXML_NO_CALLBACK</TD></TR>
|
||||
<TR><TD><TT>sax_cb</TT></TD><TD>SAX callback or MXML_NO_CALLBACK</TD></TR>
|
||||
<TR><TD><TT>sax_data</TT></TD><TD>SAX user data</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>First node or NULL if the string has errors.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadFile.html">Previous</A>
|
||||
<A HREF="mxmlSaveAllocString.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,60 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSaveString.html">
|
||||
<LINK REL="Next" HREF="MiniXML21mxmlSetCustom.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveString.html">Previous</A>
|
||||
<A HREF="MiniXML21mxmlSetCustom.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_38">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlSetCDATA">mxmlSetCDATA()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the element name of a CDATA node.</P>
|
||||
<P>The node is not changed if it is not a CDATA element node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetCDATA( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, const char * data);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>data</TT></TD><TD>New data string</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveString.html">Previous</A>
|
||||
<A HREF="MiniXML21mxmlSetCustom.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetTextf.html">
|
||||
<LINK REL="Next" HREF="mxmlWalkNext.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetTextf.html">Previous</A>
|
||||
<A HREF="mxmlWalkNext.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A NAME="8_3_48">
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.3 <A name="mxmlSetWrapMargin">mxmlSetWrapMargin()</A></A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the the wrap margin when saving XML data.</P>
|
||||
<P>Wrapping is disabled when "column" is <= 0.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlSetWrapMargin( int column);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>column</TT></TD><TD>Column for wrapping</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetTextf.html">Previous</A>
|
||||
<A HREF="mxmlWalkNext.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,41 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="FindingandIteratingNodes.html">
|
||||
<LINK REL="Next" HREF="LoadCallbacks.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="FindingandIteratingNodes.html">Previous</A>
|
||||
<A HREF="LoadCallbacks.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="ADVANCED"><IMG align="right" alt="3" height="100"
|
||||
hspace="10" src="3.gif" width="100"></A>More Mini-XML Programming
|
||||
Techniques</H1>
|
||||
<P>This chapter shows additional ways to use the Mini-XML library in
|
||||
your programs.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="FindingandIteratingNodes.html">Previous</A>
|
||||
<A HREF="LoadCallbacks.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,118 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="TheBasics.html">
|
||||
<LINK REL="Next" HREF="CreatingXMLDocuments.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="TheBasics.html">Previous</A>
|
||||
<A HREF="CreatingXMLDocuments.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="3_2">Nodes</A></H2>
|
||||
<P>Every piece of information in an XML file (elements, text, numbers)
|
||||
is stored in memory in "nodes". Nodes are defined by the <A href="mxmlnodet.html#mxml_node_t">
|
||||
<TT>mxml_node_t</TT></A> structure. The <A href="#mxml_type_t"><TT>type</TT>
|
||||
</A> member defines the node type (element, integer, opaque, real, or
|
||||
text) which determines which value you want to look at in the <A href="mxmlvaluet.html#mxml_value_t">
|
||||
<TT>value</TT></A> union.</P>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<CENTER>
|
||||
<TABLE border="1" cellpadding="5" cellspacing="0" summary="Mini-XML Node Value Members"
|
||||
width="80%"><CAPTION align="bottom"><I> Table 2-1: Mini-XML Node Value
|
||||
Members</I></CAPTION>
|
||||
<TR bgcolor="#cccccc"><TH>Value</TH><TH>Type</TH><TH>Node member</TH></TR>
|
||||
<TR><TD>Custom</TD><TD><TT>void *</TT></TD><TD><TT>
|
||||
node->value.custom.data</TT></TD></TR>
|
||||
<TR><TD>Element</TD><TD><TT>char *</TT></TD><TD><TT>
|
||||
node->value.element.name</TT></TD></TR>
|
||||
<TR><TD>Integer</TD><TD><TT>int</TT></TD><TD><TT>node->value.integer</TT>
|
||||
</TD></TR>
|
||||
<TR><TD>Opaque (string)</TD><TD><TT>char *</TT></TD><TD><TT>
|
||||
node->value.opaque</TT></TD></TR>
|
||||
<TR><TD>Real</TD><TD><TT>double</TT></TD><TD><TT>node->value.real</TT></TD>
|
||||
</TR>
|
||||
<TR><TD>Text</TD><TD><TT>char *</TT></TD><TD><TT>node->value.text.string</TT>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
<P>Each node also has a <TT>user_data</TT> member which allows you to
|
||||
associate application-specific data with each node as needed.</P>
|
||||
<P>New nodes are created using the <A href="mxmlNewElement.html#mxmlNewElement">
|
||||
<TT>mxmlNewElement</TT></A>, <A href="mxmlNewInteger.html#mxmlNewInteger">
|
||||
<TT>mxmlNewInteger</TT></A>, <A href="mxmlNewOpaque.html#mxmlNewOpaque"><TT>
|
||||
mxmlNewOpaque</TT></A>, <A href="mxmlNewReal.html#mxmlNewReal"><TT>
|
||||
mxmlNewReal</TT></A>, <A href="mxmlNewText.html#mxmlNewText"><TT>
|
||||
mxmlNewText</TT></A> <A href="mxmlNewTextf.html#mxmlNewTextf"><TT>
|
||||
mxmlNewTextf</TT></A> <A href="MiniXML23mxmlNewXML.html#mxmlNewXML"><TT>
|
||||
mxmlNewXML</TT></A> functions. Only elements can have child nodes, and
|
||||
the top node must be an element, usually the <TT><?xml version="1.0"?></TT>
|
||||
node created by <TT>mxmlNewXML()</TT>.</P>
|
||||
<P>Nodes have pointers to the node above (<TT>parent</TT>), below (<TT>
|
||||
child</TT>), left (<TT>prev</TT>), and right (<TT>next</TT>) of the
|
||||
current node. If you have an XML file like the following:</P>
|
||||
<PRE>
|
||||
<?xml version="1.0"?>
|
||||
<data>
|
||||
<node>val1</node>
|
||||
<node>val2</node>
|
||||
<node>val3</node>
|
||||
<group>
|
||||
<node>val4</node>
|
||||
<node>val5</node>
|
||||
<node>val6</node>
|
||||
</group>
|
||||
<node>val7</node>
|
||||
<node>val8</node>
|
||||
</data>
|
||||
</PRE>
|
||||
<P>the node tree for the file would look like the following in memory:</P>
|
||||
<PRE>
|
||||
?xml
|
||||
|
|
||||
data
|
||||
|
|
||||
node - node - node - group - node - node
|
||||
| | | | | |
|
||||
val1 val2 val3 | val7 val8
|
||||
|
|
||||
node - node - node
|
||||
| | |
|
||||
val4 val5 val6
|
||||
</PRE>
|
||||
<P>where "-" is a pointer to the next node and "|" is a pointer to the
|
||||
first child node.</P>
|
||||
<P>Once you are done with the XML data, use the <A href="mxmlDelete.html#mxmlDelete">
|
||||
<TT>mxmlDelete</TT></A> function to recursively free the memory that is
|
||||
used for a particular node or the entire tree:</P>
|
||||
<PRE>
|
||||
mxmlDelete(tree);
|
||||
</PRE>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="TheBasics.html">Previous</A>
|
||||
<A HREF="CreatingXMLDocuments.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,68 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="OrganizationofThisDocument.html">
|
||||
<LINK REL="Next" HREF="Abbreviations.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="OrganizationofThisDocument.html">Previous</A>
|
||||
<A HREF="Abbreviations.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="1_2">Notation Conventions</A></H2>
|
||||
<P>Various font and syntax conventions are used in this guide. Examples
|
||||
and their meanings and uses are explained below:</P>
|
||||
<DL>
|
||||
<DT><CODE>lpstat</CODE>
|
||||
<BR> <CODE>lpstat(1)</CODE></DT>
|
||||
<DD>The names of commands; the first mention of a command or function in
|
||||
a chapter is followed by a manual page section number.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><VAR>/var</VAR>
|
||||
<BR><VAR> /usr/share/cups/data/testprint.ps</VAR></DT>
|
||||
<DD>File and directory names.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><TT>Request ID is Printer-123</TT></DT>
|
||||
<DD>Screen output.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><KBD>lp -d printer filename ENTER</KBD></DT>
|
||||
<DD>Literal user input; special keys like <KBD>ENTER</KBD> are in ALL
|
||||
CAPS.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>12.3</DT>
|
||||
<DD>Numbers in the text are written using the period (.) to indicate the
|
||||
decimal point.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="OrganizationofThisDocument.html">Previous</A>
|
||||
<A HREF="Abbreviations.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,64 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="Introduction.html">
|
||||
<LINK REL="Next" HREF="NotationConventions.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Introduction.html">Previous</A>
|
||||
<A HREF="NotationConventions.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="1_1">Organization of This Document</A></H2>
|
||||
<P>This manual is organized into the following chapters and appendices:</P>
|
||||
<UL>
|
||||
<LI>Chapter 1, "<A href="BuildingInstallingandPackagingMiniXML.html#INSTALL">
|
||||
Building, Installing, and Packaging Mini-XML</A>", provides compilation,
|
||||
installation, and packaging instructions for Mini-XML.</LI>
|
||||
<LI>Chapter 2, "<A href="GettingStartedwithMiniXML.html#BASICS">Getting
|
||||
Started with Mini-XML</A>", shows how to use the Mini-XML library in
|
||||
your programs.</LI>
|
||||
<LI>Chapter 3, "<A href="MoreMiniXMLProgrammingTechniques.html#ADVANCED">
|
||||
More Mini-XML Programming Techniques</A>", shows additional ways to use
|
||||
the Mini-XML library.</LI>
|
||||
<LI>Chapter 4, "<A href="UsingthemxmldocUtility.html#MXMLDOC">Using the
|
||||
mxmldoc Utility</A>", describes how to use the <TT>mxmldoc(1)</TT>
|
||||
program to generate software documentation.</LI>
|
||||
<LI>Appendix A, "<A href="MiniXMLLicense.html#LICENSE">Mini-XML License</A>
|
||||
", provides the terms and conditions for using and distributing
|
||||
Mini-XML.</LI>
|
||||
<LI>Appendix B, "<A href="ReleaseNotes.html#RELNOTES">Release Notes</A>
|
||||
", lists the changes in each release of Mini-XML.</LI>
|
||||
<LI>Appendix C, "<A href="LibraryReference.html#REFERENCE">Library
|
||||
Reference</A>", contains a complete reference for Mini-XML, generated
|
||||
by <TT>mxmldoc</TT>.</LI>
|
||||
<LI>Appendix D, "<A href="XMLSchema.html#SCHEMA">XML Schema</A>", shows
|
||||
the XML schema used for the XML files produced by <TT>mxmldoc</TT>.</LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Introduction.html">Previous</A>
|
||||
<A HREF="NotationConventions.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,51 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="Abbreviations.html">
|
||||
<LINK REL="Next" HREF="LegalStuff.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Abbreviations.html">Previous</A>
|
||||
<A HREF="LegalStuff.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="1_4">Other References</A></H2>
|
||||
<DL>
|
||||
<DT>The Unicode Standard, Version 4.0, Addison-Wesley, ISBN
|
||||
0-321-18578-1</DT>
|
||||
<DD>The definition of the Unicode character set which is used for XML.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><A href="http://www.w3.org/TR/2004/REC-xml-20040204/">Extensible
|
||||
Markup Language (XML) 1.0 (Third Edition)</A></DT>
|
||||
<DD>The XML specification from the World Wide Web Consortium (W3C)
|
||||
<BR>
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<!-- NEED 6 -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Abbreviations.html">Previous</A>
|
||||
<A HREF="LegalStuff.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,164 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="Indexing.html">
|
||||
<LINK REL="Next" HREF="UsingthemxmldocUtility.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Indexing.html">Previous</A>
|
||||
<A HREF="UsingthemxmldocUtility.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="4_7">SAX (Stream) Loading of Documents</A></H2>
|
||||
<P>Mini-XML supports an implementation of the Simple API for XML (SAX)
|
||||
which allows you to load and process an XML document as a stream of
|
||||
nodes. Aside from allowing you to process XML documents of any size,
|
||||
the Mini-XML implementation also allows you to retain portions of the
|
||||
document in memory for later processing.</P>
|
||||
<P>The <A href="#mxmlSAXLoad"><TT>mxmlSAXLoadFd</TT></A>, <A href="MiniXML23mxmlSAXLoadFile.html#mxmlSAXLoadFile">
|
||||
<TT>mxmlSAXLoadFile</TT></A>, and <A href="MiniXML23mxmlSAXLoadString.html#mxmlSAXLoadString">
|
||||
<TT>mxmlSAXLoadString</TT></A> functions provide the SAX loading APIs.
|
||||
Each function works like the corresponding <TT>mxmlLoad</TT> function
|
||||
but uses a callback to process each node as it is read.</P>
|
||||
<P>The callback function receives the node, an event code, and a user
|
||||
data pointer you supply:</P>
|
||||
<PRE>
|
||||
void
|
||||
sax_cb(mxml_node_t *node,
|
||||
mxml_sax_event_t event,
|
||||
void *data)
|
||||
{
|
||||
... do something ...
|
||||
}
|
||||
</PRE>
|
||||
<P>The event will be one of the following:</P>
|
||||
<UL>
|
||||
<LI><TT>MXML_SAX_CDATA</TT> - CDATA was just read</LI>
|
||||
<LI><TT>MXML_SAX_COMMENT</TT> - A comment was just read</LI>
|
||||
<LI><TT>MXML_SAX_DATA</TT> - Data (custom, integer, opaque, real, or
|
||||
text) was just read</LI>
|
||||
<LI><TT>MXML_SAX_DIRECTIVE</TT> - A processing directive was just read</LI>
|
||||
<LI><TT>MXML_SAX_ELEMENT_CLOSE</TT> - An open element was just read (<TT>
|
||||
<element></TT>)</LI>
|
||||
<LI><TT>MXML_SAX_ELEMENT_OPEN</TT> - A close element was just read (<TT>
|
||||
</element></TT>)</LI>
|
||||
</UL>
|
||||
<P>Elements are<EM> released</EM> after the close element is processed.
|
||||
All other nodes are released after they are processed. The SAX callback
|
||||
can<EM> retain</EM> the node using the <A href="MiniXML23mxmlRetain.html#mxmlRetain">
|
||||
<TT>mxmlRetain</TT></A> function. For example, the following SAX
|
||||
callback will retain all nodes, effectively simulating a normal
|
||||
in-memory load:</P>
|
||||
<PRE>
|
||||
void
|
||||
sax_cb(mxml_node_t *node,
|
||||
mxml_sax_event_t event,
|
||||
void *data)
|
||||
{
|
||||
if (event != MXML_SAX_ELEMENT_CLOSE)
|
||||
mxmlRetain(node);
|
||||
}
|
||||
</PRE>
|
||||
<P>More typically the SAX callback will only retain a small portion of
|
||||
the document that is needed for post-processing. For example, the
|
||||
following SAX callback will retain the title and headings in an XHTML
|
||||
file. It also retains the (parent) elements like <TT><html></TT>, <TT>
|
||||
<head></TT>, and <TT><body></TT>, and processing directives like <TT>
|
||||
<?xml ... ?></TT> and <TT><!DOCTYPE ... ></TT>:</P>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<PRE>
|
||||
void
|
||||
sax_cb(mxml_node_t *node,
|
||||
mxml_sax_event_t event,
|
||||
void *data)
|
||||
{
|
||||
if (event == MXML_SAX_ELEMENT_OPEN)
|
||||
{
|
||||
/*
|
||||
* Retain headings and titles...
|
||||
*/
|
||||
|
||||
char *name = node->value.element.name;
|
||||
|
||||
if (!strcmp(name, "html") ||
|
||||
!strcmp(name, "head") ||
|
||||
!strcmp(name, "title") ||
|
||||
!strcmp(name, "body") ||
|
||||
!strcmp(name, "h1") ||
|
||||
!strcmp(name, "h2") ||
|
||||
!strcmp(name, "h3") ||
|
||||
!strcmp(name, "h4") ||
|
||||
!strcmp(name, "h5") ||
|
||||
!strcmp(name, "h6"))
|
||||
mxmlRetain(node);
|
||||
}
|
||||
else if (event == MXML_SAX_DIRECTIVE)
|
||||
mxmlRetain(node);
|
||||
else if (event == MXML_SAX_DATA &&
|
||||
node->parent->ref_count > 1)
|
||||
{
|
||||
/*
|
||||
* If the parent was retained, then retain
|
||||
* this data node as well.
|
||||
*/
|
||||
|
||||
mxmlRetain(node);
|
||||
}
|
||||
}
|
||||
</PRE>
|
||||
<P>The resulting skeleton document tree can then be searched just like
|
||||
one loaded using the <TT>mxmlLoad</TT> functions. For example, a filter
|
||||
that reads an XHTML document from stdin and then shows the title and
|
||||
headings in the document would look like:</P>
|
||||
<PRE>
|
||||
mxml_node_t *doc, *title, *body, *heading;
|
||||
|
||||
doc = mxmlSAXLoadFd(NULL, 0,
|
||||
MXML_TEXT_CALLBACK,
|
||||
<B>sax_cb</B>, NULL);
|
||||
|
||||
title = mxmlFindElement(doc, doc, "title",
|
||||
NULL, NULL,
|
||||
MXML_DESCEND);
|
||||
|
||||
if (title)
|
||||
print_children(title);
|
||||
|
||||
body = mxmlFindElement(doc, doc, "body",
|
||||
NULL, NULL,
|
||||
MXML_DESCEND);
|
||||
|
||||
if (body)
|
||||
{
|
||||
for (heading = body->child;
|
||||
heading;
|
||||
heading = heading->next)
|
||||
print_children(heading);
|
||||
}
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Indexing.html">Previous</A>
|
||||
<A HREF="UsingthemxmldocUtility.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,133 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="LoadCallbacks.html">
|
||||
<LINK REL="Next" HREF="CustomDataTypes.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LoadCallbacks.html">Previous</A>
|
||||
<A HREF="CustomDataTypes.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A name="SAVE_CALLBACKS">Save Callbacks</A></H2>
|
||||
<P><A href="#LOAD_XML">Chapter 2</A> also introduced the <A href="mxmlSaveFile.html#mxmlSaveFile">
|
||||
<TT>mxmlSaveFile()</TT></A>, <A href="mxmlSaveString.html#mxmlSaveString">
|
||||
<TT>mxmlSaveString()</TT></A>, and <A href="mxmlSaveAllocString.html#mxmlSaveAllocString">
|
||||
<TT>mxmlSaveAllocString()</TT></A> functions. The last argument to these
|
||||
functions is a callback function which is used to automatically insert
|
||||
whitespace in an XML document.</P>
|
||||
<P>Your callback function will be called up to four times for each
|
||||
element node with a pointer to the node and a "where" value of <TT>
|
||||
MXML_WS_BEFORE_OPEN</TT>, <TT>MXML_WS_AFTER_OPEN</TT>, <TT>
|
||||
MXML_WS_BEFORE_CLOSE</TT>, or <TT>MXML_WS_AFTER_CLOSE</TT>. The callback
|
||||
function should return <TT>NULL</TT> if no whitespace should be added
|
||||
and the string to insert (spaces, tabs, carriage returns, and newlines)
|
||||
otherwise.</P>
|
||||
<P>The following whitespace callback can be used to add whitespace to
|
||||
XHTML output to make it more readable in a standard text editor:</P>
|
||||
<PRE>
|
||||
const char *
|
||||
whitespace_cb(mxml_node_t *node,
|
||||
int where)
|
||||
{
|
||||
const char *name;
|
||||
|
||||
/*
|
||||
* We can conditionally break to a new line
|
||||
* before or after any element. These are
|
||||
* just common HTML elements...
|
||||
*/
|
||||
|
||||
name = node->value.element.name;
|
||||
|
||||
if (!strcmp(name, "html") ||
|
||||
!strcmp(name, "head") ||
|
||||
!strcmp(name, "body") ||
|
||||
!strcmp(name, "pre") ||
|
||||
!strcmp(name, "p") ||
|
||||
!strcmp(name, "h1") ||
|
||||
!strcmp(name, "h2") ||
|
||||
!strcmp(name, "h3") ||
|
||||
!strcmp(name, "h4") ||
|
||||
!strcmp(name, "h5") ||
|
||||
!strcmp(name, "h6"))
|
||||
{
|
||||
/*
|
||||
* Newlines before open and after
|
||||
* close...
|
||||
*/
|
||||
|
||||
if (where == MXML_WS_BEFORE_OPEN ||
|
||||
where == MXML_WS_AFTER_CLOSE)
|
||||
return ("\n");
|
||||
}
|
||||
else if (!strcmp(name, "dl") ||
|
||||
!strcmp(name, "ol") ||
|
||||
!strcmp(name, "ul"))
|
||||
{
|
||||
/*
|
||||
* Put a newline before and after list
|
||||
* elements...
|
||||
*/
|
||||
|
||||
return ("\n");
|
||||
}
|
||||
else if (!strcmp(name, "dd") ||
|
||||
!strcmp(name, "dt") ||
|
||||
!strcmp(name, "li"))
|
||||
{
|
||||
/*
|
||||
* Put a tab before <li>'s, * <dd>'s,
|
||||
* and <dt>'s, and a newline after them...
|
||||
*/
|
||||
|
||||
if (where == MXML_WS_BEFORE_OPEN)
|
||||
return ("\t");
|
||||
else if (where == MXML_WS_AFTER_CLOSE)
|
||||
return ("\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Return NULL for no added whitespace...
|
||||
*/
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
</PRE>
|
||||
<P>To use this callback function, simply use the name when you call any
|
||||
of the save functions:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "w");
|
||||
mxmlSaveFile(tree, fp, <B>whitespace_cb</B>);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LoadCallbacks.html">Previous</A>
|
||||
<A HREF="CustomDataTypes.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,76 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="LoadingXML.html">
|
||||
<LINK REL="Next" HREF="ControllingLineWrapping.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LoadingXML.html">Previous</A>
|
||||
<A HREF="ControllingLineWrapping.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="3_5">Saving XML</A></H2>
|
||||
<P>You save an XML file using the <A href="mxmlSaveFile.html#mxmlSaveFile">
|
||||
<TT>mxmlSaveFile</TT></A> function:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "w");
|
||||
mxmlSaveFile(tree, fp, MXML_NO_CALLBACK);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
<P>The first argument is the XML node tree to save. It should normally
|
||||
be a pointer to the top-level <TT>?xml</TT> node in your XML document.</P>
|
||||
<P>The second argument is the stdio file to write to, as opened by <TT>
|
||||
fopen()</TT> or <TT>popen()</TT>. You can also use <TT>stdout</TT> if
|
||||
you are implementing an XML filter program.</P>
|
||||
<P>The third argument is the whitespace callback to use when saving the
|
||||
file. Whitespace callbacks are covered in detail in <A href="SAVE_CALLBACKS">
|
||||
Chapter 3</A>. The previous example code uses the <TT>MXML_NO_CALLBACK</TT>
|
||||
constant to specify that no special whitespace handling is required.</P>
|
||||
<P>The <A href="mxmlSaveAllocString.html#mxmlSaveAllocString"><TT>
|
||||
mxmlSaveAllocString</TT></A>, and <A href="mxmlSaveString.html#mxmlSaveString">
|
||||
<TT>mxmlSaveString</TT></A> functions save XML node trees to strings:</P>
|
||||
<PRE>
|
||||
char buffer[8192];
|
||||
char *ptr;
|
||||
mxml_node_t *tree;
|
||||
|
||||
...
|
||||
mxmlSaveString(tree, buffer, sizeof(buffer),
|
||||
MXML_NO_CALLBACK);
|
||||
|
||||
...
|
||||
ptr = mxmlSaveAllocString(tree, MXML_NO_CALLBACK);
|
||||
</PRE>
|
||||
<P>The first and last arguments are the same as used for <TT>
|
||||
mxmlSaveFile()</TT>. The <TT>mxmlSaveString</TT> function takes pointer
|
||||
and size arguments for saving the XML document to a fixed-size buffer,
|
||||
while <TT>mxmlSaveAllocString()</TT> returns a string buffer that was
|
||||
allocated using <TT>malloc()</TT>.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="LoadingXML.html">Previous</A>
|
||||
<A HREF="ControllingLineWrapping.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,51 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlWalkPrev.html">
|
||||
<LINK REL="Next" HREF="mxmlattrs.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlWalkPrev.html">Previous</A>
|
||||
<A HREF="mxmlattrs.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2 class="title"><A name="STRUCTURES">Structures</A></H2>
|
||||
<UL>
|
||||
<LI><A href="mxmlattrs.html#mxml_attr_s"><TT>mxml_attr_s</TT></A></LI>
|
||||
<LI><A href="MiniXML21mxmlcustoms.html#mxml_custom_s"><TT>mxml_custom_s</TT>
|
||||
</A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 </LI>
|
||||
<LI><A href="mxmlelements.html#mxml_element_s"><TT>mxml_element_s</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlindexs.html#mxml_index_s"><TT>mxml_index_s</TT></A></LI>
|
||||
<LI><A href="mxmlnodes.html#mxml_node_s"><TT>mxml_node_s</TT></A></LI>
|
||||
<LI><A href="mxmltexts.html#mxml_text_s"><TT>mxml_text_s</TT></A></LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlWalkPrev.html">Previous</A>
|
||||
<A HREF="mxmlattrs.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,53 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="GettingStartedwithMiniXML.html">
|
||||
<LINK REL="Next" HREF="Nodes.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="GettingStartedwithMiniXML.html">Previous</A>
|
||||
<A HREF="Nodes.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="3_1">The Basics</A></H2>
|
||||
<P>Mini-XML provides a single header file which you include:</P>
|
||||
<PRE>
|
||||
#include <mxml.h>
|
||||
</PRE>
|
||||
<P>The Mini-XML library is included with your program using the <KBD>
|
||||
-lmxml</KBD> option:</P>
|
||||
<PRE>
|
||||
<KBD>gcc -o myprogram myprogram.c -lmxml ENTER</KBD>
|
||||
</PRE>
|
||||
<P>If you have the <TT>pkg-config(1)</TT> software installed, you can
|
||||
use it to determine the proper compiler and linker options for your
|
||||
installation:</P>
|
||||
<PRE>
|
||||
<KBD>pkg-config --cflags mxml ENTER</KBD>
|
||||
<KBD>pkg-config --libs mxml ENTER</KBD>
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="GettingStartedwithMiniXML.html">Previous</A>
|
||||
<A HREF="Nodes.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,80 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="UsingthemxmldocUtility.html">
|
||||
<LINK REL="Next" HREF="CommentingYourCode.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="UsingthemxmldocUtility.html">Previous</A>
|
||||
<A HREF="CommentingYourCode.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="5_1">The Basics</A></H2>
|
||||
<P>Originally developed to generate the Mini-XML and CUPS API
|
||||
documentation, <TT>mxmldoc</TT> is now a general-purpose utility which
|
||||
scans C and C++ source files to produce HTML and man page documentation
|
||||
along with an XML file representing the functions, types, and
|
||||
definitions in those source files. Unlike popular documentation
|
||||
generators like Doxygen or Javadoc, <TT>mxmldoc</TT> uses in-line
|
||||
comments rather than comment headers, allowing for more "natural" code
|
||||
documentation.</P>
|
||||
<P>By default, <TT>mxmldoc</TT> produces HTML documentation. For
|
||||
example, the following command will scan all of the C source and header
|
||||
files in the current directory and produce a HTML documentation file
|
||||
called<VAR> filename.html</VAR>:</P>
|
||||
<PRE>
|
||||
<KBD>mxmldoc *.h *.c >filename.html ENTER</KBD>
|
||||
</PRE>
|
||||
<P>You can also specify an XML file to create which contains all of the
|
||||
information from the source files. For example, the following command
|
||||
creates an XML file called<VAR> filename.xml</VAR> in addition to the
|
||||
HTML file:</P>
|
||||
<PRE>
|
||||
<KBD>mxmldoc filename.xml *.h *.c >filename.html ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The <TT>--no-output</TT> option disables the normal HTML output:</P>
|
||||
<PRE>
|
||||
<KBD>mxmldoc --no-output filename.xml *.h *.c ENTER</KBD>
|
||||
</PRE>
|
||||
<P>You can then run <TT>mxmldoc</TT> again with the XML file alone to
|
||||
generate the HTML documentation:</P>
|
||||
<PRE>
|
||||
<KBD>mxmldoc filename.xml >filename.html ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The <TT>--man filename</TT> option tells <TT>mxmldoc</TT> to create a
|
||||
man page instead of HTML documentation, for example:</P>
|
||||
<PRE>
|
||||
<KBD>mxmldoc --man filename filename.xml \
|
||||
>filename.man ENTER</KBD>
|
||||
|
||||
<KBD>mxmldoc --man filename *.h *.c \
|
||||
>filename.man ENTER</KBD>
|
||||
|
||||
<KBD>mxmldoc --man filename filename.xml *.h *.c \
|
||||
>filename.man ENTER</KBD>
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="UsingthemxmldocUtility.html">Previous</A>
|
||||
<A HREF="CommentingYourCode.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,66 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="CommentingYourCode.html">
|
||||
<LINK REL="Next" HREF="MiniXMLLicense.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CommentingYourCode.html">Previous</A>
|
||||
<A HREF="MiniXMLLicense.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2><A NAME="5_3">Titles, Sections, and Introductions</A></H2>
|
||||
<P><TT>Mxmldoc</TT> also provides options to set the title, section, and
|
||||
introduction text for the generated documentation. The <TT>--title text</TT>
|
||||
option specifies the title for the documentation. The title string is
|
||||
usually put in quotes:</P>
|
||||
<PRE>
|
||||
<KBD>mxmldoc filename.xml \
|
||||
--title "My Famous Documentation" \
|
||||
>filename.html ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The <TT>--section name</TT> option specifies the section for the
|
||||
documentation. For HTML documentation, the name is placed in a HTML
|
||||
comment such as:</P>
|
||||
<PRE>
|
||||
<!-- SECTION: name -->
|
||||
</PRE>
|
||||
<P>For man pages, the section name is usually just a number ("3"), or a
|
||||
number followed by a vendor name ("3acme"). The section name is used in
|
||||
the <TT>.TH</TT> directive in the man page:</P>
|
||||
<PRE>
|
||||
.TH mylibrary 3acme "My Title" ...
|
||||
</PRE>
|
||||
<P>The default section name for man page output is "3". There is no
|
||||
default section name for HTML output.</P>
|
||||
<P>Finally, the <TT>--intro filename</TT> option specifies a file to
|
||||
embed after the title and section but before the generated
|
||||
documentation. For HTML documentation, the file must consist of valid
|
||||
HTML without the usual <TT>DOCTYPE</TT>, <TT>html</TT>, and <TT>body</TT>
|
||||
elements. For man page documentation, the file must consist of valid <TT>
|
||||
nroff(1)</TT> text.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="CommentingYourCode.html">Previous</A>
|
||||
<A HREF="MiniXMLLicense.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,67 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmltexts.html">
|
||||
<LINK REL="Next" HREF="mxmlattrt.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmltexts.html">Previous</A>
|
||||
<A HREF="mxmlattrt.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2 class="title"><A name="TYPES">Types</A></H2>
|
||||
<UL>
|
||||
<LI><A href="mxmlattrt.html#mxml_attr_t"><TT>mxml_attr_t</TT></A></LI>
|
||||
<LI><A href="mxmlcustomdestroycbt.html#mxml_custom_destroy_cb_t"><TT>
|
||||
mxml_custom_destroy_cb_t</TT></A></LI>
|
||||
<LI><A href="mxmlcustomloadcbt.html#mxml_custom_load_cb_t"><TT>
|
||||
mxml_custom_load_cb_t</TT></A></LI>
|
||||
<LI><A href="mxmlcustomsavecbt.html#mxml_custom_save_cb_t"><TT>
|
||||
mxml_custom_save_cb_t</TT></A></LI>
|
||||
<LI><A href="MiniXML21mxmlcustomt.html#mxml_custom_t"><TT>mxml_custom_t</TT>
|
||||
</A>
|
||||
<!--span class='info'-->
|
||||
Mini-XML 2.1 </LI>
|
||||
<LI><A href="mxmlelementt.html#mxml_element_t"><TT>mxml_element_t</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlerrorcbt.html#mxml_error_cb_t"><TT>mxml_error_cb_t</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlindext.html#mxml_index_t"><TT>mxml_index_t</TT></A></LI>
|
||||
<LI><A href="mxmlloadcbt.html#mxml_load_cb_t"><TT>mxml_load_cb_t</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlnodet.html#mxml_node_t"><TT>mxml_node_t</TT></A></LI>
|
||||
<LI><A href="mxmlsavecbt.html#mxml_save_cb_t"><TT>mxml_save_cb_t</TT></A>
|
||||
</LI>
|
||||
<LI><A href="mxmlsaxcbt.html#mxml_sax_cb_t"><TT>mxml_sax_cb_t</TT></A></LI>
|
||||
<LI><A href="mxmlsaxeventt.html#mxml_sax_event_t"><TT>mxml_sax_event_t</TT>
|
||||
</A></LI>
|
||||
<LI><A href="mxmltextt.html#mxml_text_t"><TT>mxml_text_t</TT></A></LI>
|
||||
<LI><A href="mxmlvaluet.html#mxml_value_t"><TT>mxml_value_t</TT></A></LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmltexts.html">Previous</A>
|
||||
<A HREF="mxmlattrt.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,42 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlvaluet.html">
|
||||
<LINK REL="Next" HREF="mxmlvalueu.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlvaluet.html">Previous</A>
|
||||
<A HREF="mxmlvalueu.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H2 class="title"><A name="UNIONS">Unions</A></H2>
|
||||
<UL>
|
||||
<LI><A href="mxmlvalueu.html#mxml_value_u"><TT>mxml_value_u</TT></A></LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlvaluet.html">Previous</A>
|
||||
<A HREF="mxmlvalueu.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,40 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="SAXStreamLoadingofDocuments.html">
|
||||
<LINK REL="Next" HREF="TheBasics1.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="SAXStreamLoadingofDocuments.html">Previous</A>
|
||||
<A HREF="TheBasics1.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="MXMLDOC"><IMG align="right" alt="4" height="100"
|
||||
hspace="10" src="4.gif" width="100"></A>Using the mxmldoc Utility</H1>
|
||||
<P>This chapter describes how to use <TT>mxmldoc(1)</TT> program to
|
||||
automatically generate documentation from C and C++ source files.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="SAXStreamLoadingofDocuments.html">Previous</A>
|
||||
<A HREF="TheBasics1.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
578
www/docfiles/advanced.html
Normal file
578
www/docfiles/advanced.html
Normal file
@ -0,0 +1,578 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="basics.html">
|
||||
<LINK REL="Next" HREF="mxmldoc.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="basics.html">Previous</A>
|
||||
<A HREF="mxmldoc.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="ADVANCED"><IMG align="right" alt="3" height="100"
|
||||
hspace="10" src="3.gif" width="100"></A>More Mini-XML Programming
|
||||
Techniques</H1>
|
||||
<P>This chapter shows additional ways to use the Mini-XML library in
|
||||
your programs.</P>
|
||||
<H2><A name="LOAD_CALLBACKS">Load Callbacks</A></H2>
|
||||
<P><A href="#LOAD_XML">Chapter 2</A> introduced the <A href="refapp.html#mxmlLoadFile">
|
||||
<TT>mxmlLoadFile()</TT></A> and <A href="refapp.html#mxmlLoadString"><TT>
|
||||
mxmlLoadString()</TT></A> functions. The last argument to these
|
||||
functions is a callback function which is used to determine the value
|
||||
type of each data node in an XML document.</P>
|
||||
<P>Mini-XML defines several standard callbacks for simple XML data
|
||||
files:</P>
|
||||
<UL>
|
||||
<LI><TT>MXML_INTEGER_CALLBACK</TT> - All data nodes contain
|
||||
whitespace-separated integers.</LI>
|
||||
<LI><TT>MXML_OPAQUE_CALLBACK</TT> - All data nodes contain opaque
|
||||
strings ("CDATA").</LI>
|
||||
<LI><TT>MXML_REAL_CALLBACK</TT> - All data nodes contain
|
||||
whitespace-separated floating-point numbers.</LI>
|
||||
<LI><TT>MXML_TEXT_CALLBACK</TT> - All data nodes contain
|
||||
whitespace-separated strings.</LI>
|
||||
</UL>
|
||||
<P>You can provide your own callback functions for more complex XML
|
||||
documents. Your callback function will receive a pointer to the current
|
||||
element node and must return the value type of the immediate children
|
||||
for that element node: <TT>MXML_INTEGER</TT>, <TT>MXML_OPAQUE</TT>, <TT>
|
||||
MXML_REAL</TT>, or <TT>MXML_TEXT</TT>. The function is called<I> after</I>
|
||||
the element and its attributes have been read, so you can look at the
|
||||
element name, attributes, and attribute values to determine the proper
|
||||
value type to return.</P>
|
||||
|
||||
<!-- NEED 2in -->
|
||||
<P>The following callback function looks for an attribute named "type"
|
||||
or the element name to determine the value type for its child nodes:</P>
|
||||
<PRE>
|
||||
mxml_type_t
|
||||
type_cb(mxml_node_t *node)
|
||||
{
|
||||
const char *type;
|
||||
|
||||
/*
|
||||
* You can lookup attributes and/or use the
|
||||
* element name, hierarchy, etc...
|
||||
*/
|
||||
|
||||
type = mxmlElementGetAttr(node, "type");
|
||||
if (type == NULL)
|
||||
type = node->value.element.name;
|
||||
|
||||
if (!strcmp(type, "integer"))
|
||||
return (MXML_INTEGER);
|
||||
else if (!strcmp(type, "opaque"))
|
||||
return (MXML_OPAQUE);
|
||||
else if (!strcmp(type, "real"))
|
||||
return (MXML_REAL);
|
||||
else
|
||||
return (MXML_TEXT);
|
||||
}
|
||||
</PRE>
|
||||
<P>To use this callback function, simply use the name when you call any
|
||||
of the load functions:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "r");
|
||||
tree = mxmlLoadFile(NULL, fp, <B>type_cb</B>);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
<H2><A name="SAVE_CALLBACKS">Save Callbacks</A></H2>
|
||||
<P><A href="#LOAD_XML">Chapter 2</A> also introduced the <A href="refapp.html#mxmlSaveFile">
|
||||
<TT>mxmlSaveFile()</TT></A>, <A href="refapp.html#mxmlSaveString"><TT>
|
||||
mxmlSaveString()</TT></A>, and <A href="refapp.html#mxmlSaveAllocString">
|
||||
<TT>mxmlSaveAllocString()</TT></A> functions. The last argument to these
|
||||
functions is a callback function which is used to automatically insert
|
||||
whitespace in an XML document.</P>
|
||||
<P>Your callback function will be called up to four times for each
|
||||
element node with a pointer to the node and a "where" value of <TT>
|
||||
MXML_WS_BEFORE_OPEN</TT>, <TT>MXML_WS_AFTER_OPEN</TT>, <TT>
|
||||
MXML_WS_BEFORE_CLOSE</TT>, or <TT>MXML_WS_AFTER_CLOSE</TT>. The callback
|
||||
function should return <TT>NULL</TT> if no whitespace should be added
|
||||
and the string to insert (spaces, tabs, carriage returns, and newlines)
|
||||
otherwise.</P>
|
||||
<P>The following whitespace callback can be used to add whitespace to
|
||||
XHTML output to make it more readable in a standard text editor:</P>
|
||||
<PRE>
|
||||
const char *
|
||||
whitespace_cb(mxml_node_t *node,
|
||||
int where)
|
||||
{
|
||||
const char *name;
|
||||
|
||||
/*
|
||||
* We can conditionally break to a new line
|
||||
* before or after any element. These are
|
||||
* just common HTML elements...
|
||||
*/
|
||||
|
||||
name = node->value.element.name;
|
||||
|
||||
if (!strcmp(name, "html") ||
|
||||
!strcmp(name, "head") ||
|
||||
!strcmp(name, "body") ||
|
||||
!strcmp(name, "pre") ||
|
||||
!strcmp(name, "p") ||
|
||||
!strcmp(name, "h1") ||
|
||||
!strcmp(name, "h2") ||
|
||||
!strcmp(name, "h3") ||
|
||||
!strcmp(name, "h4") ||
|
||||
!strcmp(name, "h5") ||
|
||||
!strcmp(name, "h6"))
|
||||
{
|
||||
/*
|
||||
* Newlines before open and after
|
||||
* close...
|
||||
*/
|
||||
|
||||
if (where == MXML_WS_BEFORE_OPEN ||
|
||||
where == MXML_WS_AFTER_CLOSE)
|
||||
return ("\n");
|
||||
}
|
||||
else if (!strcmp(name, "dl") ||
|
||||
!strcmp(name, "ol") ||
|
||||
!strcmp(name, "ul"))
|
||||
{
|
||||
/*
|
||||
* Put a newline before and after list
|
||||
* elements...
|
||||
*/
|
||||
|
||||
return ("\n");
|
||||
}
|
||||
else if (!strcmp(name, "dd") ||
|
||||
!strcmp(name, "dt") ||
|
||||
!strcmp(name, "li"))
|
||||
{
|
||||
/*
|
||||
* Put a tab before <li>'s, * <dd>'s,
|
||||
* and <dt>'s, and a newline after them...
|
||||
*/
|
||||
|
||||
if (where == MXML_WS_BEFORE_OPEN)
|
||||
return ("\t");
|
||||
else if (where == MXML_WS_AFTER_CLOSE)
|
||||
return ("\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Return NULL for no added whitespace...
|
||||
*/
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
</PRE>
|
||||
<P>To use this callback function, simply use the name when you call any
|
||||
of the save functions:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "w");
|
||||
mxmlSaveFile(tree, fp, <B>whitespace_cb</B>);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<H2><A NAME="4_3">Custom Data Types</A></H2>
|
||||
<P>Mini-XML supports custom data types via global load and save
|
||||
callbacks. Only a single set of callbacks can be active at any time,
|
||||
however your callbacks can store additional information in order to
|
||||
support multiple custom data types as needed. The <TT>MXML_CUSTOM</TT>
|
||||
node type identifies custom data nodes.</P>
|
||||
<P>The load callback receives a pointer to the current data node and a
|
||||
string of opaque character data from the XML source with character
|
||||
entities converted to the corresponding UTF-8 characters. For example,
|
||||
if we wanted to support a custom date/time type whose value is encoded
|
||||
as "yyyy-mm-ddThh:mm:ssZ" (ISO format), the load callback would look
|
||||
like the following:</P>
|
||||
<PRE>
|
||||
typedef struct
|
||||
{
|
||||
unsigned year, /* Year */
|
||||
month, /* Month */
|
||||
day, /* Day */
|
||||
hour, /* Hour */
|
||||
minute, /* Minute */
|
||||
second; /* Second */
|
||||
time_t unix; /* UNIX time */
|
||||
} iso_date_time_t;
|
||||
|
||||
int
|
||||
load_custom(mxml_node_t *node,
|
||||
const char *data)
|
||||
{
|
||||
iso_date_time_t *dt;
|
||||
struct tm tmdata;
|
||||
|
||||
/*
|
||||
* Allocate data structure...
|
||||
*/
|
||||
|
||||
dt = calloc(1, sizeof(iso_date_time_t));
|
||||
|
||||
/*
|
||||
* Try reading 6 unsigned integers from the
|
||||
* data string...
|
||||
*/
|
||||
|
||||
if (sscanf(data, "%u-%u-%uT%u:%u:%uZ",
|
||||
&(dt->year), &(dt->month),
|
||||
&(dt->day), &(dt->hour),
|
||||
&(dt->minute),
|
||||
&(dt->second)) != 6)
|
||||
{
|
||||
/*
|
||||
* Unable to read numbers, free the data
|
||||
* structure and return an error...
|
||||
*/
|
||||
|
||||
free(dt);
|
||||
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Range check values...
|
||||
*/
|
||||
|
||||
if (dt->month <1 || dt->month > 12 ||
|
||||
dt->day <1 || dt->day > 31 ||
|
||||
dt->hour <0 || dt->hour > 23 ||
|
||||
dt->minute <0 || dt->minute > 59 ||
|
||||
dt->second <0 || dt->second > 59)
|
||||
{
|
||||
/*
|
||||
* Date information is out of range...
|
||||
*/
|
||||
|
||||
free(dt);
|
||||
|
||||
return (-1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert ISO time to UNIX time in
|
||||
* seconds...
|
||||
*/
|
||||
|
||||
tmdata.tm_year = dt->year - 1900;
|
||||
tmdata.tm_mon = dt->month - 1;
|
||||
tmdata.tm_day = dt->day;
|
||||
tmdata.tm_hour = dt->hour;
|
||||
tmdata.tm_min = dt->minute;
|
||||
tmdata.tm_sec = dt->second;
|
||||
|
||||
dt->unix = gmtime(&tmdata);
|
||||
|
||||
/*
|
||||
* Assign custom node data and destroy
|
||||
* function pointers...
|
||||
*/
|
||||
|
||||
node->value.custom.data = dt;
|
||||
node->value.custom.destroy = free;
|
||||
|
||||
/*
|
||||
* Return with no errors...
|
||||
*/
|
||||
|
||||
return (0);
|
||||
}
|
||||
</PRE>
|
||||
<P>The function itself can return 0 on success or -1 if it is unable to
|
||||
decode the custom data or the data contains an error. Custom data nodes
|
||||
contain a <TT>void</TT> pointer to the allocated custom data for the
|
||||
node and a pointer to a destructor function which will free the custom
|
||||
data when the node is deleted.</P>
|
||||
<P>The save callback receives the node pointer and returns an allocated
|
||||
string containing the custom data value. The following save callback
|
||||
could be used for our ISO date/time type:</P>
|
||||
<PRE>
|
||||
char *
|
||||
save_custom(mxml_node_t *node)
|
||||
{
|
||||
char data[255];
|
||||
iso_date_time_t *dt;
|
||||
|
||||
|
||||
dt = (iso_date_time_t *)node->custom.data;
|
||||
|
||||
snprintf(data, sizeof(data),
|
||||
"%04u-%02u-%02uT%02u:%02u:%02uZ",
|
||||
dt->year, dt->month, dt->day,
|
||||
dt->hour, dt->minute, dt->second);
|
||||
|
||||
return (strdup(data));
|
||||
}
|
||||
</PRE>
|
||||
<P>You register the callback functions using the <A href="refapp.html#mxmlSetCustomHandlers">
|
||||
<TT>mxmlSetCustomHandlers()</TT></A> function:</P>
|
||||
<PRE>
|
||||
mxmlSetCustomHandlers(<B>load_custom</B>,
|
||||
<B>save_custom</B>);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 20 -->
|
||||
<H2><A NAME="4_4">Changing Node Values</A></H2>
|
||||
<P>All of the examples so far have concentrated on creating and loading
|
||||
new XML data nodes. Many applications, however, need to manipulate or
|
||||
change the nodes during their operation, so Mini-XML provides functions
|
||||
to change node values safely and without leaking memory.</P>
|
||||
<P>Existing nodes can be changed using the <A href="refapp.html#mxmlSetElement">
|
||||
<TT>mxmlSetElement()</TT></A>, <A href="refapp.html#mxmlSetInteger"><TT>
|
||||
mxmlSetInteger()</TT></A>, <A href="refapp.html#mxmlSetOpaque"><TT>
|
||||
mxmlSetOpaque()</TT></A>, <A href="refapp.html#mxmlSetReal"><TT>
|
||||
mxmlSetReal()</TT></A>, <A href="refapp.html#mxmlSetText"><TT>
|
||||
mxmlSetText()</TT></A>, and <A href="refapp.html#mxmlSetTextf"><TT>
|
||||
mxmlSetTextf()</TT></A> functions. For example, use the following
|
||||
function call to change a text node to contain the text "new" with
|
||||
leading whitespace:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
mxmlSetText(node, 1, "new");
|
||||
</PRE>
|
||||
<H2><A NAME="4_5">Formatted Text</A></H2>
|
||||
<P>The <A href="refapp.html#mxmlNewTextf"><TT>mxmlNewTextf()</TT></A>
|
||||
and <A href="refapp.html#mxmlSetTextf"><TT>mxmlSetTextf()</TT></A>
|
||||
functions create and change text nodes, respectively, using <TT>printf</TT>
|
||||
-style format strings and arguments. For example, use the following
|
||||
function call to create a new text node containing a constructed
|
||||
filename:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
node = mxmlNewTextf(node, 1, "%s/%s",
|
||||
path, filename);
|
||||
</PRE>
|
||||
<H2><A NAME="4_6">Indexing</A></H2>
|
||||
<P>Mini-XML provides functions for managing indices of nodes. The
|
||||
current implementation provides the same functionality as <A href="refapp.html#mxmlFindElement">
|
||||
<TT>mxmlFindElement()</TT></A>. The advantage of using an index is that
|
||||
searching and enumeration of elements is significantly faster. The only
|
||||
disadvantage is that each index is a static snapshot of the XML
|
||||
document, so indices are not well suited to XML data that is updated
|
||||
more often than it is searched. The overhead of creating an index is
|
||||
approximately equal to walking the XML document tree. Nodes in the
|
||||
index are sorted by element name and attribute value.</P>
|
||||
<P>Indices are stored in <A href="refapp.html#mxml_index_t"><TT>
|
||||
mxml_index_t</TT></A> structures. The <A href="refapp.html#mxmlIndexNew">
|
||||
<TT>mxmlIndexNew()</TT></A> function creates a new index:</P>
|
||||
<PRE>
|
||||
mxml_node_t *tree;
|
||||
mxml_index_t *ind;
|
||||
|
||||
ind = mxmlIndexNew(tree, "element",
|
||||
"attribute");
|
||||
</PRE>
|
||||
<P>The first argument is the XML node tree to index. Normally this will
|
||||
be a pointer to the <TT>?xml</TT> element.</P>
|
||||
<P>The second argument contains the element to index; passing <TT>NULL</TT>
|
||||
indexes all element nodes alphabetically.</P>
|
||||
<P>The third argument contains the attribute to index; passing <TT>NULL</TT>
|
||||
causes only the element name to be indexed.</P>
|
||||
<P>Once the index is created, the <A href="refapp.html#mxmlIndexEnum"><TT>
|
||||
mxmlIndexEnum()</TT></A>, <A href="refapp.html#mxmlIndexFind"><TT>
|
||||
mxmlIndexFind()</TT></A>, and <A href="refapp.html#mxmlIndexReset"><TT>
|
||||
mxmlIndexReset()</TT></A> functions are used to access the nodes in the
|
||||
index. The <A href="refapp.html#mxmlIndexReset"><TT>mxmlIndexReset()</TT>
|
||||
</A> function resets the "current" node pointer in the index, allowing
|
||||
you to do new searches and enumerations on the same index. Typically
|
||||
you will call this function prior to your calls to <A href="refapp.html#mxmlIndexEnum">
|
||||
<TT>mxmlIndexEnum()</TT></A> and <A href="refapp.html#mxmlIndexFind"><TT>
|
||||
mxmlIndexFind()</TT></A>.</P>
|
||||
<P>The <A href="refapp.html#mxmlIndexEnum"><TT>mxmlIndexEnum()</TT></A>
|
||||
function enumerates each of the nodes in the index and can be used in a
|
||||
loop as follows:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
mxmlIndexReset(ind);
|
||||
|
||||
while ((node = mxmlIndexEnum(ind)) != NULL)
|
||||
{
|
||||
// do something with node
|
||||
}
|
||||
</PRE>
|
||||
<P>The <A href="refapp.html#mxmlIndexFind"><TT>mxmlIndexFind()</TT></A>
|
||||
function locates the next occurrence of the named element and attribute
|
||||
value in the index. It can be used to find all matching elements in an
|
||||
index, as follows:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
mxmlIndexReset(ind);
|
||||
|
||||
while ((node = mxmlIndexFind(ind, "element",
|
||||
"attr-value"))
|
||||
!= NULL)
|
||||
{
|
||||
// do something with node
|
||||
}
|
||||
</PRE>
|
||||
<P>The second and third arguments represent the element name and
|
||||
attribute value, respectively. A <TT>NULL</TT> pointer is used to
|
||||
return all elements or attributes in the index. Passing <TT>NULL</TT>
|
||||
for both the element name and attribute value is equivalent to calling <TT>
|
||||
mxmlIndexEnum</TT>.</P>
|
||||
<P>When you are done using the index, delete it using the <A href="#mxmlIndexDelete()">
|
||||
<TT>mxmlIndexDelete()</TT></A> function:</P>
|
||||
<PRE>
|
||||
mxmlIndexDelete(ind);
|
||||
</PRE>
|
||||
<H2><A NAME="4_7">SAX (Stream) Loading of Documents</A></H2>
|
||||
<P>Mini-XML supports an implementation of the Simple API for XML (SAX)
|
||||
which allows you to load and process an XML document as a stream of
|
||||
nodes. Aside from allowing you to process XML documents of any size,
|
||||
the Mini-XML implementation also allows you to retain portions of the
|
||||
document in memory for later processing.</P>
|
||||
<P>The <A href="#mxmlSAXLoad"><TT>mxmlSAXLoadFd</TT></A>, <A href="refapp.html#mxmlSAXLoadFile">
|
||||
<TT>mxmlSAXLoadFile</TT></A>, and <A href="refapp.html#mxmlSAXLoadString">
|
||||
<TT>mxmlSAXLoadString</TT></A> functions provide the SAX loading APIs.
|
||||
Each function works like the corresponding <TT>mxmlLoad</TT> function
|
||||
but uses a callback to process each node as it is read.</P>
|
||||
<P>The callback function receives the node, an event code, and a user
|
||||
data pointer you supply:</P>
|
||||
<PRE>
|
||||
void
|
||||
sax_cb(mxml_node_t *node,
|
||||
mxml_sax_event_t event,
|
||||
void *data)
|
||||
{
|
||||
... do something ...
|
||||
}
|
||||
</PRE>
|
||||
<P>The event will be one of the following:</P>
|
||||
<UL>
|
||||
<LI><TT>MXML_SAX_CDATA</TT> - CDATA was just read</LI>
|
||||
<LI><TT>MXML_SAX_COMMENT</TT> - A comment was just read</LI>
|
||||
<LI><TT>MXML_SAX_DATA</TT> - Data (custom, integer, opaque, real, or
|
||||
text) was just read</LI>
|
||||
<LI><TT>MXML_SAX_DIRECTIVE</TT> - A processing directive was just read</LI>
|
||||
<LI><TT>MXML_SAX_ELEMENT_CLOSE</TT> - An open element was just read (<TT>
|
||||
<element></TT>)</LI>
|
||||
<LI><TT>MXML_SAX_ELEMENT_OPEN</TT> - A close element was just read (<TT>
|
||||
</element></TT>)</LI>
|
||||
</UL>
|
||||
<P>Elements are<EM> released</EM> after the close element is processed.
|
||||
All other nodes are released after they are processed. The SAX callback
|
||||
can<EM> retain</EM> the node using the <A href="refapp.html#mxmlRetain">
|
||||
<TT>mxmlRetain</TT></A> function. For example, the following SAX
|
||||
callback will retain all nodes, effectively simulating a normal
|
||||
in-memory load:</P>
|
||||
<PRE>
|
||||
void
|
||||
sax_cb(mxml_node_t *node,
|
||||
mxml_sax_event_t event,
|
||||
void *data)
|
||||
{
|
||||
if (event != MXML_SAX_ELEMENT_CLOSE)
|
||||
mxmlRetain(node);
|
||||
}
|
||||
</PRE>
|
||||
<P>More typically the SAX callback will only retain a small portion of
|
||||
the document that is needed for post-processing. For example, the
|
||||
following SAX callback will retain the title and headings in an XHTML
|
||||
file. It also retains the (parent) elements like <TT><html></TT>, <TT>
|
||||
<head></TT>, and <TT><body></TT>, and processing directives like <TT>
|
||||
<?xml ... ?></TT> and <TT><!DOCTYPE ... ></TT>:</P>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<PRE>
|
||||
void
|
||||
sax_cb(mxml_node_t *node,
|
||||
mxml_sax_event_t event,
|
||||
void *data)
|
||||
{
|
||||
if (event == MXML_SAX_ELEMENT_OPEN)
|
||||
{
|
||||
/*
|
||||
* Retain headings and titles...
|
||||
*/
|
||||
|
||||
char *name = node->value.element.name;
|
||||
|
||||
if (!strcmp(name, "html") ||
|
||||
!strcmp(name, "head") ||
|
||||
!strcmp(name, "title") ||
|
||||
!strcmp(name, "body") ||
|
||||
!strcmp(name, "h1") ||
|
||||
!strcmp(name, "h2") ||
|
||||
!strcmp(name, "h3") ||
|
||||
!strcmp(name, "h4") ||
|
||||
!strcmp(name, "h5") ||
|
||||
!strcmp(name, "h6"))
|
||||
mxmlRetain(node);
|
||||
}
|
||||
else if (event == MXML_SAX_DIRECTIVE)
|
||||
mxmlRetain(node);
|
||||
else if (event == MXML_SAX_DATA &&
|
||||
node->parent->ref_count > 1)
|
||||
{
|
||||
/*
|
||||
* If the parent was retained, then retain
|
||||
* this data node as well.
|
||||
*/
|
||||
|
||||
mxmlRetain(node);
|
||||
}
|
||||
}
|
||||
</PRE>
|
||||
<P>The resulting skeleton document tree can then be searched just like
|
||||
one loaded using the <TT>mxmlLoad</TT> functions. For example, a filter
|
||||
that reads an XHTML document from stdin and then shows the title and
|
||||
headings in the document would look like:</P>
|
||||
<PRE>
|
||||
mxml_node_t *doc, *title, *body, *heading;
|
||||
|
||||
doc = mxmlSAXLoadFd(NULL, 0,
|
||||
MXML_TEXT_CALLBACK,
|
||||
<B>sax_cb</B>, NULL);
|
||||
|
||||
title = mxmlFindElement(doc, doc, "title",
|
||||
NULL, NULL,
|
||||
MXML_DESCEND);
|
||||
|
||||
if (title)
|
||||
print_children(title);
|
||||
|
||||
body = mxmlFindElement(doc, doc, "body",
|
||||
NULL, NULL,
|
||||
MXML_DESCEND);
|
||||
|
||||
if (body)
|
||||
{
|
||||
for (heading = body->child;
|
||||
heading;
|
||||
heading = heading->next)
|
||||
print_children(heading);
|
||||
}
|
||||
</PRE>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="basics.html">Previous</A>
|
||||
<A HREF="mxmldoc.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
440
www/docfiles/basics.html
Normal file
440
www/docfiles/basics.html
Normal file
@ -0,0 +1,440 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="install.html">
|
||||
<LINK REL="Next" HREF="advanced.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="install.html">Previous</A>
|
||||
<A HREF="advanced.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="BASICS"><IMG align="right" alt="2" height="100"
|
||||
hspace="10" src="2.gif" width="100"></A>Getting Started with Mini-XML</H1>
|
||||
<P>This chapter describes how to write programs that use Mini-XML to
|
||||
access data in an XML file. Mini-XML provides the following
|
||||
functionality:</P>
|
||||
<UL>
|
||||
<LI>Functions for creating and managing XML documents in memory.</LI>
|
||||
<LI>Reading of UTF-8 and UTF-16 encoded XML files and strings.</LI>
|
||||
<LI>Writing of UTF-8 encoded XML files and strings.</LI>
|
||||
<LI>Support for arbitrary element names, attributes, and attribute
|
||||
values with no preset limits, just available memory.</LI>
|
||||
<LI>Support for integer, real, opaque ("cdata"), and text data types in
|
||||
"leaf" nodes.</LI>
|
||||
<LI>"Find", "index", and "walk" functions for easily accessing data in
|
||||
an XML document.</LI>
|
||||
</UL>
|
||||
<P>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.</P>
|
||||
<H2><A NAME="3_1">The Basics</A></H2>
|
||||
<P>Mini-XML provides a single header file which you include:</P>
|
||||
<PRE>
|
||||
#include <mxml.h>
|
||||
</PRE>
|
||||
<P>The Mini-XML library is included with your program using the <KBD>
|
||||
-lmxml</KBD> option:</P>
|
||||
<PRE>
|
||||
<KBD>gcc -o myprogram myprogram.c -lmxml ENTER</KBD>
|
||||
</PRE>
|
||||
<P>If you have the <TT>pkg-config(1)</TT> software installed, you can
|
||||
use it to determine the proper compiler and linker options for your
|
||||
installation:</P>
|
||||
<PRE>
|
||||
<KBD>pkg-config --cflags mxml ENTER</KBD>
|
||||
<KBD>pkg-config --libs mxml ENTER</KBD>
|
||||
</PRE>
|
||||
<H2><A NAME="3_2">Nodes</A></H2>
|
||||
<P>Every piece of information in an XML file (elements, text, numbers)
|
||||
is stored in memory in "nodes". Nodes are defined by the <A href="refapp.html#mxml_node_t">
|
||||
<TT>mxml_node_t</TT></A> structure. The <A href="#mxml_type_t"><TT>type</TT>
|
||||
</A> member defines the node type (element, integer, opaque, real, or
|
||||
text) which determines which value you want to look at in the <A href="refapp.html#mxml_value_t">
|
||||
<TT>value</TT></A> union.</P>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<CENTER>
|
||||
<TABLE border="1" cellpadding="5" cellspacing="0" summary="Mini-XML Node Value Members"
|
||||
width="80%"><CAPTION align="bottom"><I> Table 2-1: Mini-XML Node Value
|
||||
Members</I></CAPTION>
|
||||
<TR bgcolor="#cccccc"><TH>Value</TH><TH>Type</TH><TH>Node member</TH></TR>
|
||||
<TR><TD>Custom</TD><TD><TT>void *</TT></TD><TD><TT>
|
||||
node->value.custom.data</TT></TD></TR>
|
||||
<TR><TD>Element</TD><TD><TT>char *</TT></TD><TD><TT>
|
||||
node->value.element.name</TT></TD></TR>
|
||||
<TR><TD>Integer</TD><TD><TT>int</TT></TD><TD><TT>node->value.integer</TT>
|
||||
</TD></TR>
|
||||
<TR><TD>Opaque (string)</TD><TD><TT>char *</TT></TD><TD><TT>
|
||||
node->value.opaque</TT></TD></TR>
|
||||
<TR><TD>Real</TD><TD><TT>double</TT></TD><TD><TT>node->value.real</TT></TD>
|
||||
</TR>
|
||||
<TR><TD>Text</TD><TD><TT>char *</TT></TD><TD><TT>node->value.text.string</TT>
|
||||
</TD></TR>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
<P>Each node also has a <TT>user_data</TT> member which allows you to
|
||||
associate application-specific data with each node as needed.</P>
|
||||
<P>New nodes are created using the <A href="refapp.html#mxmlNewElement"><TT>
|
||||
mxmlNewElement</TT></A>, <A href="refapp.html#mxmlNewInteger"><TT>
|
||||
mxmlNewInteger</TT></A>, <A href="refapp.html#mxmlNewOpaque"><TT>
|
||||
mxmlNewOpaque</TT></A>, <A href="refapp.html#mxmlNewReal"><TT>
|
||||
mxmlNewReal</TT></A>, <A href="refapp.html#mxmlNewText"><TT>mxmlNewText</TT>
|
||||
</A> <A href="refapp.html#mxmlNewTextf"><TT>mxmlNewTextf</TT></A> <A href="refapp.html#mxmlNewXML">
|
||||
<TT>mxmlNewXML</TT></A> functions. Only elements can have child nodes,
|
||||
and the top node must be an element, usually the <TT><?xml
|
||||
version="1.0"?></TT> node created by <TT>mxmlNewXML()</TT>.</P>
|
||||
<P>Nodes have pointers to the node above (<TT>parent</TT>), below (<TT>
|
||||
child</TT>), left (<TT>prev</TT>), and right (<TT>next</TT>) of the
|
||||
current node. If you have an XML file like the following:</P>
|
||||
<PRE>
|
||||
<?xml version="1.0"?>
|
||||
<data>
|
||||
<node>val1</node>
|
||||
<node>val2</node>
|
||||
<node>val3</node>
|
||||
<group>
|
||||
<node>val4</node>
|
||||
<node>val5</node>
|
||||
<node>val6</node>
|
||||
</group>
|
||||
<node>val7</node>
|
||||
<node>val8</node>
|
||||
</data>
|
||||
</PRE>
|
||||
<P>the node tree for the file would look like the following in memory:</P>
|
||||
<PRE>
|
||||
?xml
|
||||
|
|
||||
data
|
||||
|
|
||||
node - node - node - group - node - node
|
||||
| | | | | |
|
||||
val1 val2 val3 | val7 val8
|
||||
|
|
||||
node - node - node
|
||||
| | |
|
||||
val4 val5 val6
|
||||
</PRE>
|
||||
<P>where "-" is a pointer to the next node and "|" is a pointer to the
|
||||
first child node.</P>
|
||||
<P>Once you are done with the XML data, use the <A href="refapp.html#mxmlDelete">
|
||||
<TT>mxmlDelete</TT></A> function to recursively free the memory that is
|
||||
used for a particular node or the entire tree:</P>
|
||||
<PRE>
|
||||
mxmlDelete(tree);
|
||||
</PRE>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<H2><A NAME="3_3">Creating XML Documents</A></H2>
|
||||
<P>You can create and update XML documents in memory using the various <TT>
|
||||
mxmlNew</TT> functions. The following code will create the XML document
|
||||
described in the previous section:</P>
|
||||
<PRE>
|
||||
mxml_node_t *xml; /* <?xml ... ?> */
|
||||
mxml_node_t *data; /* <data> */
|
||||
mxml_node_t *node; /* <node> */
|
||||
mxml_node_t *group; /* <group> */
|
||||
|
||||
xml = mxmlNewXML("1.0");
|
||||
|
||||
data = mxmlNewElement(xml, "data");
|
||||
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val1");
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val2");
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val3");
|
||||
|
||||
group = mxmlNewElement(data, "group");
|
||||
|
||||
node = mxmlNewElement(group, "node");
|
||||
mxmlNewText(node, 0, "val4");
|
||||
node = mxmlNewElement(group, "node");
|
||||
mxmlNewText(node, 0, "val5");
|
||||
node = mxmlNewElement(group, "node");
|
||||
mxmlNewText(node, 0, "val6");
|
||||
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val7");
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val8");
|
||||
</PRE>
|
||||
<P>We start by creating the <TT><?xml version="1.0"?></TT> node common
|
||||
to all XML files using the <A href="refapp.html#mxmlNewXML"><TT>
|
||||
mxmlNewXML</TT></A> function:</P>
|
||||
<PRE>
|
||||
xml = mxmlNewXML("1.0");
|
||||
</PRE>
|
||||
<P>We then create the <TT><data></TT> node used for this document using
|
||||
the <A href="refapp.html#mxmlNewElement"><TT>mxmlNewElement</TT></A>
|
||||
function. The first argument specifies the parent node (<TT>xml</TT>)
|
||||
while the second specifies the element name (<TT>data</TT>):</P>
|
||||
<PRE>
|
||||
data = mxmlNewElement(xml, "data");
|
||||
</PRE>
|
||||
<P>Each <TT><node>...</node></TT> in the file is created using the <TT>
|
||||
mxmlNewElement</TT> and <A href="refapp.html#mxmlNewText"><TT>
|
||||
mxmlNewText</TT></A> functions. The first argument of <TT>mxmlNewText</TT>
|
||||
specifies the parent node (<TT>node</TT>). The second argument
|
||||
specifies whether whitespace appears before the text - 0 or false in
|
||||
this case. The last argument specifies the actual text to add:</P>
|
||||
<PRE>
|
||||
node = mxmlNewElement(data, "node");
|
||||
mxmlNewText(node, 0, "val1");
|
||||
</PRE>
|
||||
<P>The resulting in-memory XML document can then be saved or processed
|
||||
just like one loaded from disk or a string.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<H2><A NAME="3_4">Loading XML</A></H2>
|
||||
<P>You load an XML file using the <A href="refapp.html#mxmlLoadFile"><TT>
|
||||
mxmlLoadFile</TT></A> function:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "r");
|
||||
tree = mxmlLoadFile(NULL, fp,
|
||||
MXML_TEXT_CALLBACK);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
<P>The first argument specifies an existing XML parent node, if any.
|
||||
Normally you will pass <TT>NULL</TT> for this argument unless you are
|
||||
combining multiple XML sources. The XML file must contain a complete
|
||||
XML document including the <TT>?xml</TT> element if the parent node is <TT>
|
||||
NULL</TT>.</P>
|
||||
<P>The second argument specifies the stdio file to read from, as opened
|
||||
by <TT>fopen()</TT> or <TT>popen()</TT>. You can also use <TT>stdin</TT>
|
||||
if you are implementing an XML filter program.</P>
|
||||
<P>The third argument specifies a callback function which returns the
|
||||
value type of the immediate children for a new element node: <TT>
|
||||
MXML_CUSTOM</TT>, <TT>MXML_IGNORE</TT>, <TT>MXML_INTEGER</TT>, <TT>
|
||||
MXML_OPAQUE</TT>, <TT>MXML_REAL</TT>, or <TT>MXML_TEXT</TT>. Load
|
||||
callbacks are described in detail in <A href="advanced.html#LOAD_CALLBACKS">
|
||||
Chapter 3</A>. The example code uses the <TT>MXML_TEXT_CALLBACK</TT>
|
||||
constant which specifies that all data nodes in the document contain
|
||||
whitespace-separated text values. Other standard callbacks include <TT>
|
||||
MXML_IGNORE_CALLBACK</TT>, <TT>MXML_INTEGER_CALLBACK</TT>, <TT>
|
||||
MXML_OPAQUE_CALLBACK</TT>, and <TT>MXML_REAL_CALLBACK</TT>.</P>
|
||||
<P>The <A href="refapp.html#mxmlLoadString"><TT>mxmlLoadString</TT></A>
|
||||
function loads XML node trees from a string:</P>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<PRE>
|
||||
char buffer[8192];
|
||||
mxml_node_t *tree;
|
||||
|
||||
...
|
||||
tree = mxmlLoadString(NULL, buffer,
|
||||
MXML_TEXT_CALLBACK);
|
||||
</PRE>
|
||||
<P>The first and third arguments are the same as used for <TT>
|
||||
mxmlLoadFile()</TT>. The second argument specifies the string or
|
||||
character buffer to load and must be a complete XML document including
|
||||
the <TT>?xml</TT> element if the parent node is <TT>NULL</TT>.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<H2><A NAME="3_5">Saving XML</A></H2>
|
||||
<P>You save an XML file using the <A href="refapp.html#mxmlSaveFile"><TT>
|
||||
mxmlSaveFile</TT></A> function:</P>
|
||||
<PRE>
|
||||
FILE *fp;
|
||||
mxml_node_t *tree;
|
||||
|
||||
fp = fopen("filename.xml", "w");
|
||||
mxmlSaveFile(tree, fp, MXML_NO_CALLBACK);
|
||||
fclose(fp);
|
||||
</PRE>
|
||||
<P>The first argument is the XML node tree to save. It should normally
|
||||
be a pointer to the top-level <TT>?xml</TT> node in your XML document.</P>
|
||||
<P>The second argument is the stdio file to write to, as opened by <TT>
|
||||
fopen()</TT> or <TT>popen()</TT>. You can also use <TT>stdout</TT> if
|
||||
you are implementing an XML filter program.</P>
|
||||
<P>The third argument is the whitespace callback to use when saving the
|
||||
file. Whitespace callbacks are covered in detail in <A href="SAVE_CALLBACKS">
|
||||
Chapter 3</A>. The previous example code uses the <TT>MXML_NO_CALLBACK</TT>
|
||||
constant to specify that no special whitespace handling is required.</P>
|
||||
<P>The <A href="refapp.html#mxmlSaveAllocString"><TT>mxmlSaveAllocString</TT>
|
||||
</A>, and <A href="refapp.html#mxmlSaveString"><TT>mxmlSaveString</TT></A>
|
||||
functions save XML node trees to strings:</P>
|
||||
<PRE>
|
||||
char buffer[8192];
|
||||
char *ptr;
|
||||
mxml_node_t *tree;
|
||||
|
||||
...
|
||||
mxmlSaveString(tree, buffer, sizeof(buffer),
|
||||
MXML_NO_CALLBACK);
|
||||
|
||||
...
|
||||
ptr = mxmlSaveAllocString(tree, MXML_NO_CALLBACK);
|
||||
</PRE>
|
||||
<P>The first and last arguments are the same as used for <TT>
|
||||
mxmlSaveFile()</TT>. The <TT>mxmlSaveString</TT> function takes pointer
|
||||
and size arguments for saving the XML document to a fixed-size buffer,
|
||||
while <TT>mxmlSaveAllocString()</TT> returns a string buffer that was
|
||||
allocated using <TT>malloc()</TT>.</P>
|
||||
<H3><A NAME="3_5_1">Controlling Line Wrapping</A></H3>
|
||||
<P>When saving XML documents, Mini-XML normally wraps output lines at
|
||||
column 75 so that the text is readable in terminal windows. The <A href="refapp.html#mxmlSetWrapMargin">
|
||||
<TT>mxmlSetWrapMargin</TT></A> function overrides the default wrap
|
||||
margin:</P>
|
||||
<PRE>
|
||||
/* Set the margin to 132 columns */
|
||||
mxmlSetWrapMargin(132);
|
||||
|
||||
/* Disable wrapping */
|
||||
mxmlSetWrapMargin(0);
|
||||
</PRE>
|
||||
|
||||
<!-- NEW PAGE-->
|
||||
<H2><A NAME="3_6">Finding and Iterating Nodes</A></H2>
|
||||
<P>The <A href="refapp.html#mxmlWalkPrev"><TT>mxmlWalkPrev</TT></A> and <A
|
||||
href="refapp.html#mxmlWalkNext"><TT>mxmlWalkNext</TT></A>functions can
|
||||
be used to iterate through the XML node tree:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
node = mxmlWalkPrev(current, tree,
|
||||
MXML_DESCEND);
|
||||
|
||||
node = mxmlWalkNext(current, tree,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
<P>In addition, you can find a named element/node using the <A href="refapp.html#mxmlFindElement">
|
||||
<TT>mxmlFindElement</TT></A> function:</P>
|
||||
<PRE>
|
||||
mxml_node_t *node;
|
||||
|
||||
node = mxmlFindElement(tree, tree, "name",
|
||||
"attr", "value",
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
<P>The <TT>name</TT>, <TT>attr</TT>, and <TT>value</TT> arguments can be
|
||||
passed as <TT>NULL</TT> to act as wildcards, e.g.:</P>
|
||||
|
||||
<!-- NEED 4 -->
|
||||
<PRE>
|
||||
/* Find the first "a" element */
|
||||
node = mxmlFindElement(tree, tree, "a",
|
||||
NULL, NULL,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 5 -->
|
||||
<PRE>
|
||||
/* Find the first "a" element with "href"
|
||||
attribute */
|
||||
node = mxmlFindElement(tree, tree, "a",
|
||||
"href", NULL,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 6 -->
|
||||
<PRE>
|
||||
/* Find the first "a" element with "href"
|
||||
to a URL */
|
||||
node = mxmlFindElement(tree, tree, "a",
|
||||
"href",
|
||||
"http://www.easysw.com/",
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 5 -->
|
||||
<PRE>
|
||||
/* Find the first element with a "src"
|
||||
attribute */
|
||||
node = mxmlFindElement(tree, tree, NULL,
|
||||
"src", NULL,
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 5 -->
|
||||
<PRE>
|
||||
/* Find the first element with a "src"
|
||||
= "foo.jpg" */
|
||||
node = mxmlFindElement(tree, tree, NULL,
|
||||
"src", "foo.jpg",
|
||||
MXML_DESCEND);
|
||||
</PRE>
|
||||
<P>You can also iterate with the same function:</P>
|
||||
<PRE>
|
||||
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 ...
|
||||
}
|
||||
</PRE>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<P>The <TT>MXML_DESCEND</TT> argument can actually be one of three
|
||||
constants:</P>
|
||||
<UL>
|
||||
<LI><TT>MXML_NO_DESCEND</TT> means to not to look at any child nodes in
|
||||
the element hierarchy, just look at siblings at the same level or
|
||||
parent nodes until the top node or top-of-tree is reached.
|
||||
<P>The previous node from "group" would be the "node" element to the
|
||||
left, while the next node from "group" would be the "node" element to
|
||||
the right.
|
||||
<BR>
|
||||
<BR></P>
|
||||
</LI>
|
||||
<LI><TT>MXML_DESCEND_FIRST</TT> means that it is OK to descend to the
|
||||
first child of a node, but not to descend further when searching.
|
||||
You'll normally use this when iterating through direct children of a
|
||||
parent node, e.g. all of the "node" and "group" elements under the
|
||||
"?xml" parent node in the example above.
|
||||
<P>This mode is only applicable to the search function; the walk
|
||||
functions treat this as <TT>MXML_DESCEND</TT> since every call is a
|
||||
first time.
|
||||
<BR>
|
||||
<BR></P>
|
||||
</LI>
|
||||
<LI><TT>MXML_DESCEND</TT> means to keep descending until you hit the
|
||||
bottom of the tree. The previous node from "group" would be the "val3"
|
||||
node and the next node would be the first node element under "group".
|
||||
<P>If you were to walk from the root node "?xml" to the end of the tree
|
||||
with <TT>mxmlWalkNext()</TT>, the order would be:</P>
|
||||
<P><TT>?xml data node val1 node val2 node val3 group node val4 node val5
|
||||
node val6 node val7 node val8</TT></P>
|
||||
<P>If you started at "val8" and walked using <TT>mxmlWalkPrev()</TT>,
|
||||
the order would be reversed, ending at "?xml".</P>
|
||||
</LI>
|
||||
</UL>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="install.html">Previous</A>
|
||||
<A HREF="advanced.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -24,185 +24,166 @@ A { text-decoration: none }
|
||||
<BODY>
|
||||
<H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
|
||||
<BR>
|
||||
<BR><B><A HREF="Introduction.html#INTRO">Introduction</A></B>
|
||||
<BR><B><A HREF="intro.html#INTRO">Introduction</A></B>
|
||||
<UL>
|
||||
<LI><A HREF="OrganizationofThisDocument.html#1_1">Organization of This
|
||||
Document</A></LI>
|
||||
<LI><A HREF="NotationConventions.html#1_2">Notation Conventions</A></LI>
|
||||
<LI><A HREF="Abbreviations.html#1_3">Abbreviations</A></LI>
|
||||
<LI><A HREF="OtherReferences.html#1_4">Other References</A></LI>
|
||||
<LI><A HREF="LegalStuff.html#1_5">Legal Stuff</A></LI>
|
||||
<LI><A HREF="intro.html#1_1">Organization of This Document</A></LI>
|
||||
<LI><A HREF="intro.html#1_2">Notation Conventions</A></LI>
|
||||
<LI><A HREF="intro.html#1_3">Abbreviations</A></LI>
|
||||
<LI><A HREF="intro.html#1_4">Other References</A></LI>
|
||||
<LI><A HREF="intro.html#1_5">Legal Stuff</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="BuildingInstallingandPackagingMiniXML.html#INSTALL">
|
||||
Building, Installing, and Packaging Mini-XML</A></B>
|
||||
<UL>
|
||||
<LI><A HREF="CompilingMiniXML.html#2_1">Compiling Mini-XML</A>
|
||||
<UL>
|
||||
<LI><A HREF="CompilingwithVisualC.html#2_1_1">Compiling with Visual C++</A>
|
||||
</LI>
|
||||
<LI><A HREF="CompilingwithCommandLineTools.html#2_1_2">Compiling with
|
||||
Command-Line Tools</A></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><A HREF="InstallingMiniXML.html#2_2">Installing Mini-XML</A></LI>
|
||||
<LI><A HREF="CreatingMiniXMLPackages.html#2_3">Creating Mini-XML
|
||||
Packages</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="GettingStartedwithMiniXML.html#BASICS">Getting Started with
|
||||
<B><A HREF="install.html#INSTALL">Building, Installing, and Packaging
|
||||
Mini-XML</A></B>
|
||||
<UL>
|
||||
<LI><A HREF="TheBasics.html#3_1">The Basics</A></LI>
|
||||
<LI><A HREF="Nodes.html#3_2">Nodes</A></LI>
|
||||
<LI><A HREF="CreatingXMLDocuments.html#3_3">Creating XML Documents</A></LI>
|
||||
<LI><A HREF="LoadingXML.html#3_4">Loading XML</A></LI>
|
||||
<LI><A HREF="SavingXML.html#3_5">Saving XML</A>
|
||||
<LI><A HREF="install.html#2_1">Compiling Mini-XML</A>
|
||||
<UL>
|
||||
<LI><A HREF="ControllingLineWrapping.html#3_5_1">Controlling Line
|
||||
Wrapping</A></LI>
|
||||
<LI><A HREF="install.html#2_1_1">Compiling with Visual C++</A></LI>
|
||||
<LI><A HREF="install.html#2_1_2">Compiling with Command-Line Tools</A></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><A HREF="FindingandIteratingNodes.html#3_6">Finding and Iterating
|
||||
Nodes</A></LI>
|
||||
<LI><A HREF="install.html#2_2">Installing Mini-XML</A></LI>
|
||||
<LI><A HREF="install.html#2_3">Creating Mini-XML Packages</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="MoreMiniXMLProgrammingTechniques.html#ADVANCED">More
|
||||
Mini-XML Programming Techniques</A></B>
|
||||
<B><A HREF="basics.html#BASICS">Getting Started with Mini-XML</A></B>
|
||||
<UL>
|
||||
<LI><A HREF="LoadCallbacks.html#LOAD_CALLBACKS">Load Callbacks</A></LI>
|
||||
<LI><A HREF="SaveCallbacks.html#SAVE_CALLBACKS">Save Callbacks</A></LI>
|
||||
<LI><A HREF="CustomDataTypes.html#4_3">Custom Data Types</A></LI>
|
||||
<LI><A HREF="ChangingNodeValues.html#4_4">Changing Node Values</A></LI>
|
||||
<LI><A HREF="FormattedText.html#4_5">Formatted Text</A></LI>
|
||||
<LI><A HREF="Indexing.html#4_6">Indexing</A></LI>
|
||||
<LI><A HREF="SAXStreamLoadingofDocuments.html#4_7">SAX (Stream) Loading
|
||||
of Documents</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="UsingthemxmldocUtility.html#MXMLDOC">Using the mxmldoc
|
||||
Utility</A></B>
|
||||
<LI><A HREF="basics.html#3_1">The Basics</A></LI>
|
||||
<LI><A HREF="basics.html#3_2">Nodes</A></LI>
|
||||
<LI><A HREF="basics.html#3_3">Creating XML Documents</A></LI>
|
||||
<LI><A HREF="basics.html#3_4">Loading XML</A></LI>
|
||||
<LI><A HREF="basics.html#3_5">Saving XML</A>
|
||||
<UL>
|
||||
<LI><A HREF="TheBasics1.html#5_1">The Basics</A></LI>
|
||||
<LI><A HREF="CommentingYourCode.html#5_2">Commenting Your Code</A></LI>
|
||||
<LI><A HREF="TitlesSectionsandIntroductions.html#5_3">Titles, Sections,
|
||||
and Introductions</A></LI>
|
||||
<LI><A HREF="basics.html#3_5_1">Controlling Line Wrapping</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="MiniXMLLicense.html#LICENSE">Mini-XML License</A></B>
|
||||
</LI>
|
||||
<LI><A HREF="basics.html#3_6">Finding and Iterating Nodes</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="advanced.html#ADVANCED">More Mini-XML Programming Techniques</A>
|
||||
</B>
|
||||
<UL>
|
||||
<LI><A HREF="advanced.html#LOAD_CALLBACKS">Load Callbacks</A></LI>
|
||||
<LI><A HREF="advanced.html#SAVE_CALLBACKS">Save Callbacks</A></LI>
|
||||
<LI><A HREF="advanced.html#4_3">Custom Data Types</A></LI>
|
||||
<LI><A HREF="advanced.html#4_4">Changing Node Values</A></LI>
|
||||
<LI><A HREF="advanced.html#4_5">Formatted Text</A></LI>
|
||||
<LI><A HREF="advanced.html#4_6">Indexing</A></LI>
|
||||
<LI><A HREF="advanced.html#4_7">SAX (Stream) Loading of Documents</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="mxmldoc.html#MXMLDOC">Using the mxmldoc Utility</A></B>
|
||||
<UL>
|
||||
<LI><A HREF="mxmldoc.html#5_1">The Basics</A></LI>
|
||||
<LI><A HREF="mxmldoc.html#5_2">Commenting Your Code</A></LI>
|
||||
<LI><A HREF="mxmldoc.html#5_3">Titles, Sections, and Introductions</A></LI>
|
||||
</UL>
|
||||
<B><A HREF="license.html#LICENSE">Mini-XML License</A></B>
|
||||
<BR>
|
||||
<BR><B><A HREF="ReleaseNotes.html#RELNOTES">Release Notes</A></B>
|
||||
<BR><B><A HREF="relnotes.html#RELNOTES">Release Notes</A></B>
|
||||
<UL></UL>
|
||||
<B><A HREF="LibraryReference.html#REFERENCE">Library Reference</A></B>
|
||||
<B><A HREF="refapp.html#REFERENCE">Library Reference</A></B>
|
||||
<UL>
|
||||
<LI><A HREF="Contents.html#8_1">Contents</A></LI>
|
||||
<LI><A HREF="Enumerations.html#ENUMERATIONS">Enumerations</A>
|
||||
<LI><A HREF="refapp.html#8_1">Contents</A></LI>
|
||||
<LI><A HREF="refapp.html#ENUMERATIONS">Enumerations</A>
|
||||
<UL>
|
||||
<LI><A HREF="mxmlsaxevente.html#mxml_sax_event_e">mxml_sax_event_e</A></LI>
|
||||
<LI><A HREF="mxmltypee.html#mxml_type_e">mxml_type_e</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_sax_event_e">mxml_sax_event_e</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_type_e">mxml_type_e</A></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><A HREF="Functions.html#FUNCTIONS">Functions</A>
|
||||
<LI><A HREF="refapp.html#FUNCTIONS">Functions</A>
|
||||
<UL>
|
||||
<LI><A HREF="mxmlAdd.html#mxmlAdd">mxmlAdd()</A></LI>
|
||||
<LI><A HREF="mxmlDelete.html#mxmlDelete">mxmlDelete()</A></LI>
|
||||
<LI><A HREF="mxmlElementGetAttr.html#mxmlElementGetAttr">
|
||||
mxmlElementGetAttr()</A></LI>
|
||||
<LI><A HREF="mxmlElementSetAttr.html#mxmlElementSetAttr">
|
||||
mxmlElementSetAttr()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlElementSetAttrf.html#8_3_5">
|
||||
mxmlElementSetAttrf()</A></LI>
|
||||
<LI><A HREF="mxmlEntityAddCallback.html#mxmlEntityAddCallback">
|
||||
mxmlEntityAddCallback()</A></LI>
|
||||
<LI><A HREF="mxmlEntityGetName.html#mxmlEntityGetName">
|
||||
mxmlEntityGetName()</A></LI>
|
||||
<LI><A HREF="mxmlEntityGetValue.html#mxmlEntityGetValue">
|
||||
mxmlEntityGetValue()</A></LI>
|
||||
<LI><A HREF="mxmlEntityRemoveCallback.html#mxmlEntityRemoveCallback">
|
||||
<LI><A HREF="refapp.html#mxmlAdd">mxmlAdd()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlDelete">mxmlDelete()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlElementGetAttr">mxmlElementGetAttr()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlElementSetAttr">mxmlElementSetAttr()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_5">mxmlElementSetAttrf()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlEntityAddCallback">mxmlEntityAddCallback()</A>
|
||||
</LI>
|
||||
<LI><A HREF="refapp.html#mxmlEntityGetName">mxmlEntityGetName()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlEntityGetValue">mxmlEntityGetValue()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlEntityRemoveCallback">
|
||||
mxmlEntityRemoveCallback()</A></LI>
|
||||
<LI><A HREF="mxmlFindElement.html#mxmlFindElement">mxmlFindElement()</A></LI>
|
||||
<LI><A HREF="mxmlIndexDelete.html#mxmlIndexDelete">mxmlIndexDelete()</A></LI>
|
||||
<LI><A HREF="mxmlIndexEnum.html#mxmlIndexEnum">mxmlIndexEnum()</A></LI>
|
||||
<LI><A HREF="mxmlIndexFind.html#mxmlIndexFind">mxmlIndexFind()</A></LI>
|
||||
<LI><A HREF="mxmlIndexNew.html#mxmlIndexNew">mxmlIndexNew()</A></LI>
|
||||
<LI><A HREF="mxmlIndexReset.html#mxmlIndexReset">mxmlIndexReset()</A></LI>
|
||||
<LI><A HREF="mxmlLoadFd.html#mxmlLoadFd">mxmlLoadFd()</A></LI>
|
||||
<LI><A HREF="mxmlLoadFile.html#mxmlLoadFile">mxmlLoadFile()</A></LI>
|
||||
<LI><A HREF="mxmlLoadString.html#mxmlLoadString">mxmlLoadString()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlNewCDATA.html#8_3_19">mxmlNewCDATA()</A></LI>
|
||||
<LI><A HREF="MiniXML21mxmlNewCustom.html#8_3_20">mxmlNewCustom()</A></LI>
|
||||
<LI><A HREF="mxmlNewElement.html#mxmlNewElement">mxmlNewElement()</A></LI>
|
||||
<LI><A HREF="mxmlNewInteger.html#mxmlNewInteger">mxmlNewInteger()</A></LI>
|
||||
<LI><A HREF="mxmlNewOpaque.html#mxmlNewOpaque">mxmlNewOpaque()</A></LI>
|
||||
<LI><A HREF="mxmlNewReal.html#mxmlNewReal">mxmlNewReal()</A></LI>
|
||||
<LI><A HREF="mxmlNewText.html#mxmlNewText">mxmlNewText()</A></LI>
|
||||
<LI><A HREF="mxmlNewTextf.html#mxmlNewTextf">mxmlNewTextf()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlNewXML.html#8_3_27">mxmlNewXML()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlRelease.html#8_3_28">mxmlRelease()</A></LI>
|
||||
<LI><A HREF="mxmlRemove.html#mxmlRemove">mxmlRemove()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlRetain.html#8_3_30">mxmlRetain()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlSAXLoadFd.html#8_3_31">mxmlSAXLoadFd()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlSAXLoadFile.html#8_3_32">mxmlSAXLoadFile()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlSAXLoadString.html#8_3_33">mxmlSAXLoadString()</A>
|
||||
<LI><A HREF="refapp.html#mxmlFindElement">mxmlFindElement()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlIndexDelete">mxmlIndexDelete()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlIndexEnum">mxmlIndexEnum()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlIndexFind">mxmlIndexFind()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlIndexNew">mxmlIndexNew()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlIndexReset">mxmlIndexReset()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlLoadFd">mxmlLoadFd()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlLoadFile">mxmlLoadFile()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlLoadString">mxmlLoadString()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_19">mxmlNewCDATA()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_20">mxmlNewCustom()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlNewElement">mxmlNewElement()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlNewInteger">mxmlNewInteger()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlNewOpaque">mxmlNewOpaque()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlNewReal">mxmlNewReal()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlNewText">mxmlNewText()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlNewTextf">mxmlNewTextf()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_27">mxmlNewXML()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_28">mxmlRelease()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlRemove">mxmlRemove()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_30">mxmlRetain()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_31">mxmlSAXLoadFd()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_32">mxmlSAXLoadFile()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_33">mxmlSAXLoadString()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSaveAllocString">mxmlSaveAllocString()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSaveFd">mxmlSaveFd()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSaveFile">mxmlSaveFile()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSaveString">mxmlSaveString()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_38">mxmlSetCDATA()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_39">mxmlSetCustom()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSetCustomHandlers">mxmlSetCustomHandlers()</A>
|
||||
</LI>
|
||||
<LI><A HREF="mxmlSaveAllocString.html#mxmlSaveAllocString">
|
||||
mxmlSaveAllocString()</A></LI>
|
||||
<LI><A HREF="mxmlSaveFd.html#mxmlSaveFd">mxmlSaveFd()</A></LI>
|
||||
<LI><A HREF="mxmlSaveFile.html#mxmlSaveFile">mxmlSaveFile()</A></LI>
|
||||
<LI><A HREF="mxmlSaveString.html#mxmlSaveString">mxmlSaveString()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlSetCDATA.html#8_3_38">mxmlSetCDATA()</A></LI>
|
||||
<LI><A HREF="MiniXML21mxmlSetCustom.html#8_3_39">mxmlSetCustom()</A></LI>
|
||||
<LI><A HREF="mxmlSetCustomHandlers.html#mxmlSetCustomHandlers">
|
||||
mxmlSetCustomHandlers()</A></LI>
|
||||
<LI><A HREF="mxmlSetElement.html#mxmlSetElement">mxmlSetElement()</A></LI>
|
||||
<LI><A HREF="mxmlSetErrorCallback.html#mxmlSetErrorCallback">
|
||||
mxmlSetErrorCallback()</A></LI>
|
||||
<LI><A HREF="mxmlSetInteger.html#mxmlSetInteger">mxmlSetInteger()</A></LI>
|
||||
<LI><A HREF="mxmlSetOpaque.html#mxmlSetOpaque">mxmlSetOpaque()</A></LI>
|
||||
<LI><A HREF="mxmlSetReal.html#mxmlSetReal">mxmlSetReal()</A></LI>
|
||||
<LI><A HREF="mxmlSetText.html#mxmlSetText">mxmlSetText()</A></LI>
|
||||
<LI><A HREF="mxmlSetTextf.html#mxmlSetTextf">mxmlSetTextf()</A></LI>
|
||||
<LI><A HREF="MiniXML23mxmlSetWrapMargin.html#8_3_48">mxmlSetWrapMargin()</A>
|
||||
<LI><A HREF="refapp.html#mxmlSetElement">mxmlSetElement()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSetErrorCallback">mxmlSetErrorCallback()</A>
|
||||
</LI>
|
||||
<LI><A HREF="mxmlWalkNext.html#mxmlWalkNext">mxmlWalkNext()</A></LI>
|
||||
<LI><A HREF="mxmlWalkPrev.html#mxmlWalkPrev">mxmlWalkPrev()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSetInteger">mxmlSetInteger()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSetOpaque">mxmlSetOpaque()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSetReal">mxmlSetReal()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSetText">mxmlSetText()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlSetTextf">mxmlSetTextf()</A></LI>
|
||||
<LI><A HREF="refapp.html#8_3_48">mxmlSetWrapMargin()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlWalkNext">mxmlWalkNext()</A></LI>
|
||||
<LI><A HREF="refapp.html#mxmlWalkPrev">mxmlWalkPrev()</A></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><A HREF="Structures.html#STRUCTURES">Structures</A>
|
||||
<LI><A HREF="refapp.html#STRUCTURES">Structures</A>
|
||||
<UL>
|
||||
<LI><A HREF="mxmlattrs.html#mxml_attr_s">mxml_attr_s</A></LI>
|
||||
<LI><A HREF="MiniXML21mxmlcustoms.html#8_4_2">mxml_custom_s</A></LI>
|
||||
<LI><A HREF="mxmlelements.html#mxml_element_s">mxml_element_s</A></LI>
|
||||
<LI><A HREF="mxmlindexs.html#mxml_index_s">mxml_index_s</A></LI>
|
||||
<LI><A HREF="mxmlnodes.html#mxml_node_s">mxml_node_s</A></LI>
|
||||
<LI><A HREF="mxmltexts.html#mxml_text_s">mxml_text_s</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_attr_s">mxml_attr_s</A></LI>
|
||||
<LI><A HREF="refapp.html#8_4_2">mxml_custom_s</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_element_s">mxml_element_s</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_index_s">mxml_index_s</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_node_s">mxml_node_s</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_text_s">mxml_text_s</A></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><A HREF="Types.html#TYPES">Types</A>
|
||||
<LI><A HREF="refapp.html#TYPES">Types</A>
|
||||
<UL>
|
||||
<LI><A HREF="mxmlattrt.html#mxml_attr_t">mxml_attr_t</A></LI>
|
||||
<LI><A HREF="mxmlcustomdestroycbt.html#mxml_custom_destroy_cb_t">
|
||||
<LI><A HREF="refapp.html#mxml_attr_t">mxml_attr_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_custom_destroy_cb_t">
|
||||
mxml_custom_destroy_cb_t</A></LI>
|
||||
<LI><A HREF="mxmlcustomloadcbt.html#mxml_custom_load_cb_t">
|
||||
mxml_custom_load_cb_t</A></LI>
|
||||
<LI><A HREF="mxmlcustomsavecbt.html#mxml_custom_save_cb_t">
|
||||
mxml_custom_save_cb_t</A></LI>
|
||||
<LI><A HREF="MiniXML21mxmlcustomt.html#8_5_5">mxml_custom_t</A></LI>
|
||||
<LI><A HREF="mxmlelementt.html#mxml_element_t">mxml_element_t</A></LI>
|
||||
<LI><A HREF="mxmlerrorcbt.html#mxml_error_cb_t">mxml_error_cb_t</A></LI>
|
||||
<LI><A HREF="mxmlindext.html#mxml_index_t">mxml_index_t</A></LI>
|
||||
<LI><A HREF="mxmlloadcbt.html#mxml_load_cb_t">mxml_load_cb_t</A></LI>
|
||||
<LI><A HREF="mxmlnodet.html#mxml_node_t">mxml_node_t</A></LI>
|
||||
<LI><A HREF="mxmlsavecbt.html#mxml_save_cb_t">mxml_save_cb_t</A></LI>
|
||||
<LI><A HREF="mxmlsaxcbt.html#mxml_sax_cb_t">mxml_sax_cb_t</A></LI>
|
||||
<LI><A HREF="mxmlsaxeventt.html#mxml_sax_event_t">mxml_sax_event_t</A></LI>
|
||||
<LI><A HREF="mxmltextt.html#mxml_text_t">mxml_text_t</A></LI>
|
||||
<LI><A HREF="mxmlvaluet.html#mxml_value_t">mxml_value_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_custom_load_cb_t">mxml_custom_load_cb_t</A>
|
||||
</LI>
|
||||
<LI><A HREF="refapp.html#mxml_custom_save_cb_t">mxml_custom_save_cb_t</A>
|
||||
</LI>
|
||||
<LI><A HREF="refapp.html#8_5_5">mxml_custom_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_element_t">mxml_element_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_error_cb_t">mxml_error_cb_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_index_t">mxml_index_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_load_cb_t">mxml_load_cb_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_node_t">mxml_node_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_save_cb_t">mxml_save_cb_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_sax_cb_t">mxml_sax_cb_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_sax_event_t">mxml_sax_event_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_text_t">mxml_text_t</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_value_t">mxml_value_t</A></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
<LI><A HREF="Unions.html#UNIONS">Unions</A>
|
||||
<LI><A HREF="refapp.html#UNIONS">Unions</A>
|
||||
<UL>
|
||||
<LI><A HREF="mxmlvalueu.html#mxml_value_u">mxml_value_u</A></LI>
|
||||
<LI><A HREF="refapp.html#mxml_value_u">mxml_value_u</A></LI>
|
||||
</UL>
|
||||
</LI>
|
||||
</UL>
|
||||
<B><A HREF="XMLSchema.html#SCHEMA">XML Schema</A></B>
|
||||
<B><A HREF="schema.html#SCHEMA">XML Schema</A></B>
|
||||
<UL></UL>
|
||||
<HR NOSHADE>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
115
www/docfiles/install.html
Normal file
115
www/docfiles/install.html
Normal file
@ -0,0 +1,115 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="intro.html">
|
||||
<LINK REL="Next" HREF="basics.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="intro.html">Previous</A>
|
||||
<A HREF="basics.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="INSTALL"><IMG align="right" alt="1" height="100"
|
||||
hspace="10" src="1.gif" width="100"></A>Building, Installing, and
|
||||
Packaging Mini-XML</H1>
|
||||
<P>This chapter describes how to build, install, and package Mini-XML on
|
||||
your system from the source archive. You will need an ANSI/ISO-C
|
||||
compatible compiler to build Mini-XML - GCC works, as do most vendors'
|
||||
C compilers. If you are building Mini-XML on Windows, we recommend
|
||||
using the Visual C++ environment with the supplied solution file. For
|
||||
other operating systems, you'll need a POSIX-compatible shell and <TT>
|
||||
make</TT> program in addition to the C compiler.</P>
|
||||
<H2><A NAME="2_1">Compiling Mini-XML</A></H2>
|
||||
<P>Mini-XML comes with both an autoconf-based configure script and a
|
||||
Visual C++ solution that can be used to compile the library and
|
||||
associated tools.</P>
|
||||
<H3><A NAME="2_1_1">Compiling with Visual C++</A></H3>
|
||||
<P>Open the<VAR> mxml.sln</VAR> solution in the<VAR> vcnet</VAR> folder.
|
||||
Choose the desired build configuration, "Debug" (the default) or
|
||||
"Release", and then choose<VAR> Build Solution</VAR> from the<VAR>
|
||||
Build</VAR> menu.</P>
|
||||
<H3><A NAME="2_1_2">Compiling with Command-Line Tools</A></H3>
|
||||
<P>Type the following command to configure the Mini-XML source code for
|
||||
your system:</P>
|
||||
<PRE>
|
||||
<KBD>./configure ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The default install prefix is<VAR> /usr/local</VAR>, which can be
|
||||
overridden using the <KBD>--prefix</KBD> option:</P>
|
||||
<PRE>
|
||||
<KBD>./configure --prefix=/foo ENTER</KBD>
|
||||
</PRE>
|
||||
<P>Other configure options can be found using the <KBD>--help</KBD>
|
||||
option:</P>
|
||||
<PRE>
|
||||
<KBD>./configure --help ENTER</KBD>
|
||||
</PRE>
|
||||
<P>Once you have configured the software, use the <TT>make(1)</TT>
|
||||
program to do the build and run the test program to verify that things
|
||||
are working, as follows:</P>
|
||||
<PRE>
|
||||
<KBD>make ENTER</KBD>
|
||||
</PRE>
|
||||
<H2><A NAME="2_2">Installing Mini-XML</A></H2>
|
||||
<P>If you are using Visual C++, copy the<VAR> mxml.lib</VAR> and and<VAR>
|
||||
mxml.h</VAR> files to the Visual C++<VAR> lib</VAR> and<VAR> include<VAR>
|
||||
directories, respectively.</VAR></VAR></P>
|
||||
<P>Otherwise, use the <TT>make</TT> command with the <KBD>install</KBD>
|
||||
target to install Mini-XML in the configured directories:</P>
|
||||
<PRE>
|
||||
<KBD>make install ENTER</KBD>
|
||||
</PRE>
|
||||
<H2><A NAME="2_3">Creating Mini-XML Packages</A></H2>
|
||||
<P>Mini-XML includes two files that can be used to create binary
|
||||
packages. The first file is<VAR> mxml.spec</VAR> which is used by the <TT>
|
||||
rpmbuild(8)</TT> software to create Red Hat Package Manager ("RPM")
|
||||
packages which are commonly used on Linux. Since <TT>rpmbuild</TT>
|
||||
wants to compile the software on its own, you can provide it with the
|
||||
Mini-XML tar file to build the package:</P>
|
||||
<PRE>
|
||||
<KBD>rpmbuild -ta mxml-<I>version</I>.tar.gz ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The second file is<VAR> mxml.list</VAR> which is used by the <TT>
|
||||
epm(1)</TT> program to create software packages in a variety of formats.
|
||||
The <TT>epm</TT> program is available from the following URL:</P>
|
||||
<PRE>
|
||||
<A href="http://www.easysw.com/epm/">http://www.easysw.com/epm/</A>
|
||||
</PRE>
|
||||
<P>Use the <TT>make</TT> command with the <KBD>epm</KBD> target to
|
||||
create portable and native packages for your system:</P>
|
||||
<PRE>
|
||||
<KBD>make epm ENTER</KBD>
|
||||
</PRE>
|
||||
<P>The packages are stored in a subdirectory named<VAR> dist</VAR> for
|
||||
your convenience. The portable packages utilize scripts and tar files
|
||||
to install the software on the target system. After extracting the
|
||||
package archive, use the<VAR> mxml.install</VAR> script to install the
|
||||
software.</P>
|
||||
<P>The native packages will be in the local OS's native format: RPM for
|
||||
Red Hat Linux, DPKG for Debian Linux, PKG for Solaris, and so forth.
|
||||
Use the corresponding commands to install the native packages.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="intro.html">Previous</A>
|
||||
<A HREF="basics.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
182
www/docfiles/intro.html
Normal file
182
www/docfiles/intro.html
Normal file
@ -0,0 +1,182 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Next" HREF="install.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="install.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100"
|
||||
hspace="10" src="0.gif" width="100"></A>Introduction</H1>
|
||||
<P>This programmers manual describes Mini-XML version 2.3, a small XML
|
||||
parsing library that you can use to read and write XML data files in
|
||||
your C and C++ applications.</P>
|
||||
<P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/">
|
||||
Gutenprint</A> project to replace the rather large and unwieldy <TT>
|
||||
libxml2</TT> library with something substantially smaller and
|
||||
easier-to-use. It all began one morning in June of 2003 when Robert
|
||||
posted the following sentence to the developer's list:</P>
|
||||
<BLOCKQUOTE><EM>It's bad enough that we require libxml2, but rolling our
|
||||
own XML parser is a bit more than we can handle.</EM></BLOCKQUOTE>
|
||||
<P>I then replied with:</P>
|
||||
<BLOCKQUOTE><EM>Given the limited scope of what you use in XML, it
|
||||
should be trivial to code a mini-XML API in a few hundred lines of
|
||||
code.</EM></BLOCKQUOTE>
|
||||
<P>I took my own challenge and coded furiously for two days to produced
|
||||
the initial public release of Mini-XML, total lines of code: 696.
|
||||
Robert promptly integrated Mini-XML into Gutenprint and removed
|
||||
libxml2.</P>
|
||||
<P>Thanks to lots of feedback and support from various developers,
|
||||
Mini-XML has evolved since then to provide a more complete XML
|
||||
implementation and now stands at a whopping 3,441 lines of code,
|
||||
compared to 103,893 lines of code for libxml2 version 2.6.9.</P>
|
||||
<P>Aside from Gutenprint, Mini-XML is used for the following
|
||||
projects/software applications:</P>
|
||||
<UL>
|
||||
<LI><A href="http://www.cups.org/">Common UNIX Printing System</A></LI>
|
||||
<LI><A href="http://www.cups.org/ddk/">CUPS Driver Development Kit</A></LI>
|
||||
<LI><A href="http://www.easysw.com/printpro/">ESP Print Pro</A></LI>
|
||||
<LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI>
|
||||
</UL>
|
||||
<P>Please email me (mxml @ easysw . com) if you would like your project
|
||||
added or removed from this list, or if you have any comments/quotes you
|
||||
would like me to publish about your experiences with Mini-XML.</P>
|
||||
<H2><A NAME="1_1">Organization of This Document</A></H2>
|
||||
<P>This manual is organized into the following chapters and appendices:</P>
|
||||
<UL>
|
||||
<LI>Chapter 1, "<A href="install.html#INSTALL">Building, Installing, and
|
||||
Packaging Mini-XML</A>", provides compilation, installation, and
|
||||
packaging instructions for Mini-XML.</LI>
|
||||
<LI>Chapter 2, "<A href="basics.html#BASICS">Getting Started with
|
||||
Mini-XML</A>", shows how to use the Mini-XML library in your programs.</LI>
|
||||
<LI>Chapter 3, "<A href="advanced.html#ADVANCED">More Mini-XML
|
||||
Programming Techniques</A>", shows additional ways to use the Mini-XML
|
||||
library.</LI>
|
||||
<LI>Chapter 4, "<A href="mxmldoc.html#MXMLDOC">Using the mxmldoc Utility</A>
|
||||
", describes how to use the <TT>mxmldoc(1)</TT> program to generate
|
||||
software documentation.</LI>
|
||||
<LI>Appendix A, "<A href="license.html#LICENSE">Mini-XML License</A>",
|
||||
provides the terms and conditions for using and distributing Mini-XML.</LI>
|
||||
<LI>Appendix B, "<A href="relnotes.html#RELNOTES">Release Notes</A>",
|
||||
lists the changes in each release of Mini-XML.</LI>
|
||||
<LI>Appendix C, "<A href="refapp.html#REFERENCE">Library Reference</A>",
|
||||
contains a complete reference for Mini-XML, generated by <TT>mxmldoc</TT>
|
||||
.</LI>
|
||||
<LI>Appendix D, "<A href="schema.html#SCHEMA">XML Schema</A>", shows the
|
||||
XML schema used for the XML files produced by <TT>mxmldoc</TT>.</LI>
|
||||
</UL>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<H2><A NAME="1_2">Notation Conventions</A></H2>
|
||||
<P>Various font and syntax conventions are used in this guide. Examples
|
||||
and their meanings and uses are explained below:</P>
|
||||
<DL>
|
||||
<DT><CODE>lpstat</CODE>
|
||||
<BR> <CODE>lpstat(1)</CODE></DT>
|
||||
<DD>The names of commands; the first mention of a command or function in
|
||||
a chapter is followed by a manual page section number.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><VAR>/var</VAR>
|
||||
<BR><VAR> /usr/share/cups/data/testprint.ps</VAR></DT>
|
||||
<DD>File and directory names.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><TT>Request ID is Printer-123</TT></DT>
|
||||
<DD>Screen output.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><KBD>lp -d printer filename ENTER</KBD></DT>
|
||||
<DD>Literal user input; special keys like <KBD>ENTER</KBD> are in ALL
|
||||
CAPS.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>12.3</DT>
|
||||
<DD>Numbers in the text are written using the period (.) to indicate the
|
||||
decimal point.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<!-- NEED 10 -->
|
||||
<H2><A NAME="1_3">Abbreviations</A></H2>
|
||||
<P>The following abbreviations are used throughout this manual:</P>
|
||||
<DL>
|
||||
<DT>Gb</DT>
|
||||
<DD>Gigabytes, or 1073741824 bytes
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>kb</DT>
|
||||
<DD>Kilobytes, or 1024 bytes
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>Mb</DT>
|
||||
<DD>Megabytes, or 1048576 bytes
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>UTF-8, UTF-16</DT>
|
||||
<DD>Unicode Transformation Format, 8-bit or 16-bit
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>W3C</DT>
|
||||
<DD>World Wide Web Consortium
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT>XML</DT>
|
||||
<DD>Extensible Markup Language
|
||||
<BR>
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<!-- NEED 12 -->
|
||||
<H2><A NAME="1_4">Other References</A></H2>
|
||||
<DL>
|
||||
<DT>The Unicode Standard, Version 4.0, Addison-Wesley, ISBN
|
||||
0-321-18578-1</DT>
|
||||
<DD>The definition of the Unicode character set which is used for XML.
|
||||
<BR>
|
||||
<BR></DD>
|
||||
<DT><A href="http://www.w3.org/TR/2004/REC-xml-20040204/">Extensible
|
||||
Markup Language (XML) 1.0 (Third Edition)</A></DT>
|
||||
<DD>The XML specification from the World Wide Web Consortium (W3C)
|
||||
<BR>
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<!-- NEED 6 -->
|
||||
<H2><A NAME="1_5">Legal Stuff</A></H2>
|
||||
<P>The Mini-XML library is copyright 2003-2007 by Michael Sweet.</P>
|
||||
<P>This library is free software; you can redistribute it and/or modify
|
||||
it under the terms of the <A href="license.html#LICENSE">GNU Library
|
||||
General Public License</A> as published by the Free Software
|
||||
Foundation; either version 2 of the License, or (at your option) any
|
||||
later version.</P>
|
||||
<P>This library 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
|
||||
Library General Public License for more details.</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="install.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -7,8 +7,8 @@
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="TitlesSectionsandIntroductions.html">
|
||||
<LINK REL="Next" HREF="ReleaseNotes.html">
|
||||
<LINK REL="Prev" HREF="mxmldoc.html">
|
||||
<LINK REL="Next" HREF="relnotes.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
@ -25,8 +25,8 @@ A { text-decoration: none }
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="TitlesSectionsandIntroductions.html">Previous</A>
|
||||
<A HREF="ReleaseNotes.html">Next</A>
|
||||
<A HREF="mxmldoc.html">Previous</A>
|
||||
<A HREF="relnotes.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H1 align="right"><A name="LICENSE"><IMG align="right" alt="A" height="100"
|
||||
hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
|
||||
@ -462,7 +462,7 @@ hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
|
||||
<P>That's all there is to it!</P>
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="TitlesSectionsandIntroductions.html">Previous</A>
|
||||
<A HREF="ReleaseNotes.html">Next</A>
|
||||
<A HREF="mxmldoc.html">Previous</A>
|
||||
<A HREF="relnotes.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,69 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="Functions.html">
|
||||
<LINK REL="Next" HREF="mxmlDelete.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Functions.html">Previous</A>
|
||||
<A HREF="mxmlDelete.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlAdd">mxmlAdd()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Add a node to a tree.</P>
|
||||
<P>Adds the specified node to the parent. If the child argument is not
|
||||
NULL, puts the new node before or after the specified child depending
|
||||
on the value of the where argument. If the child argument is NULL, puts
|
||||
the new node at the beginning of the child list (MXML_ADD_BEFORE) or at
|
||||
the end of the child list (MXML_ADD_AFTER). The constant
|
||||
MXML_ADD_TO_PARENT can be used to specify a NULL child pointer.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlAdd( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
parent, int where, <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* child, <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> * node);</TT>
|
||||
</P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node</TD></TR>
|
||||
<TR><TD><TT>where</TT></TD><TD>Where to add, MXML_ADD_BEFORE or
|
||||
MXML_ADD_AFTER</TD></TR>
|
||||
<TR><TD><TT>child</TT></TD><TD>Child node for where or
|
||||
MXML_ADD_TO_PARENT</TD></TR>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to add</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Functions.html">Previous</A>
|
||||
<A HREF="mxmlDelete.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlAdd.html">
|
||||
<LINK REL="Next" HREF="mxmlElementGetAttr.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlAdd.html">Previous</A>
|
||||
<A HREF="mxmlElementGetAttr.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlDelete">mxmlDelete()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Delete a node and all of its children.</P>
|
||||
<P>If the specified node has a parent, this function first removes the
|
||||
node from its parent using the mxmlRemove() function.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlDelete( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
node);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to delete</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlAdd.html">Previous</A>
|
||||
<A HREF="mxmlElementGetAttr.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,59 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlDelete.html">
|
||||
<LINK REL="Next" HREF="mxmlElementSetAttr.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlDelete.html">Previous</A>
|
||||
<A HREF="mxmlElementSetAttr.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlElementGetAttr">mxmlElementGetAttr()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Get an attribute.</P>
|
||||
<P>This function returns NULL if the node is not an element or the named
|
||||
attribute does not exist.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>const char *
|
||||
<BR> mxmlElementGetAttr( <A href="mxmlnodet.html#mxml_node_t">
|
||||
mxml_node_t</A> * node, const char * name);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Element node</TD></TR>
|
||||
<TR><TD><TT>name</TT></TD><TD>Name of attribute</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Attribute value or NULL</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlDelete.html">Previous</A>
|
||||
<A HREF="mxmlElementSetAttr.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,61 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlElementGetAttr.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlElementSetAttrf.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlElementGetAttr.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlElementSetAttrf.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlElementSetAttr">mxmlElementSetAttr()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set an attribute.</P>
|
||||
<P>If the named attribute already exists, the value of the attribute is
|
||||
replaced by the new string value. The string value is copied into the
|
||||
element node. This function does nothing if the node is not an element.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlElementSetAttr( <A href="mxmlnodet.html#mxml_node_t">
|
||||
mxml_node_t</A> * node, const char * name, const char * value);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Element node</TD></TR>
|
||||
<TR><TD><TT>name</TT></TD><TD>Name of attribute</TD></TR>
|
||||
<TR><TD><TT>value</TT></TD><TD>Attribute value</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlElementGetAttr.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlElementSetAttrf.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,49 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlElementSetAttrf.html">
|
||||
<LINK REL="Next" HREF="mxmlEntityGetName.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlElementSetAttrf.html">Previous</A>
|
||||
<A HREF="mxmlEntityGetName.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlEntityAddCallback">
|
||||
mxmlEntityAddCallback()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Add a callback to convert entities to Unicode.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlEntityAddCallback(void);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<P>None.</P>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlElementSetAttrf.html">Previous</A>
|
||||
<A HREF="mxmlEntityGetName.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,57 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlEntityAddCallback.html">
|
||||
<LINK REL="Next" HREF="mxmlEntityGetValue.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityAddCallback.html">Previous</A>
|
||||
<A HREF="mxmlEntityGetValue.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlEntityGetName">mxmlEntityGetName()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Get the name that corresponds to the character value.</P>
|
||||
<P>If val does not need to be represented by a named entity, NULL is
|
||||
returned.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>const char *
|
||||
<BR> mxmlEntityGetName( int val);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>val</TT></TD><TD>Character value</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Entity name or NULL</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityAddCallback.html">Previous</A>
|
||||
<A HREF="mxmlEntityGetValue.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,57 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlEntityGetName.html">
|
||||
<LINK REL="Next" HREF="mxmlEntityRemoveCallback.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityGetName.html">Previous</A>
|
||||
<A HREF="mxmlEntityRemoveCallback.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlEntityGetValue">mxmlEntityGetValue()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Get the character corresponding to a named entity.</P>
|
||||
<P>The entity name can also be a numeric constant. -1 is returned if the
|
||||
name is not known.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlEntityGetValue( const char * name);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>name</TT></TD><TD>Entity name</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Character value or -1 on error</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityGetName.html">Previous</A>
|
||||
<A HREF="mxmlEntityRemoveCallback.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,49 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlEntityGetValue.html">
|
||||
<LINK REL="Next" HREF="mxmlFindElement.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityGetValue.html">Previous</A>
|
||||
<A HREF="mxmlFindElement.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlEntityRemoveCallback">
|
||||
mxmlEntityRemoveCallback()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Remove a callback.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlEntityRemoveCallback(void);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<P>None.</P>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityGetValue.html">Previous</A>
|
||||
<A HREF="mxmlFindElement.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,72 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlEntityRemoveCallback.html">
|
||||
<LINK REL="Next" HREF="mxmlIndexDelete.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityRemoveCallback.html">Previous</A>
|
||||
<A HREF="mxmlIndexDelete.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlFindElement">mxmlFindElement()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Find the named element.</P>
|
||||
<P>The search is constrained by the name, attribute name, and value; any
|
||||
NULL names or values are treated as wildcards, so different kinds of
|
||||
searches can be implemented by looking for all elements of a given name
|
||||
or all elements with a specific attribute. The descend argument
|
||||
determines whether the search descends into child nodes; normally you
|
||||
will use MXML_DESCEND_FIRST for the initial search and MXML_NO_DESCEND
|
||||
to find additional direct descendents of the node. The top node
|
||||
argument constrains the search to a particular node's children.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlFindElement( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> * top,
|
||||
const char * name, const char * attr, const char * value, int descend);</TT>
|
||||
</P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Current node</TD></TR>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>name</TT></TD><TD>Element name or NULL for any</TD></TR>
|
||||
<TR><TD><TT>attr</TT></TD><TD>Attribute name, or NULL for none</TD></TR>
|
||||
<TR><TD><TT>value</TT></TD><TD>Attribute value, or NULL for any</TD></TR>
|
||||
<TR><TD><TT>descend</TT></TD><TD>Descend into tree - MXML_DESCEND,
|
||||
MXML_NO_DESCEND, or MXML_DESCEND_FIRST</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Element node or NULL</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlEntityRemoveCallback.html">Previous</A>
|
||||
<A HREF="mxmlIndexDelete.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,56 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlFindElement.html">
|
||||
<LINK REL="Next" HREF="mxmlIndexEnum.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlFindElement.html">Previous</A>
|
||||
<A HREF="mxmlIndexEnum.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlIndexDelete">mxmlIndexDelete()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Delete an index.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlIndexDelete( <A href="mxmlindext.html#mxml_index_t">
|
||||
mxml_index_t</A> * ind);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>ind</TT></TD><TD>Index to delete</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlFindElement.html">Previous</A>
|
||||
<A HREF="mxmlIndexEnum.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,57 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlIndexDelete.html">
|
||||
<LINK REL="Next" HREF="mxmlIndexFind.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexDelete.html">Previous</A>
|
||||
<A HREF="mxmlIndexFind.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlIndexEnum">mxmlIndexEnum()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Return the next node in the index.</P>
|
||||
<P>Nodes are returned in the sorted order of the index.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlIndexEnum( <A href="mxmlindext.html#mxml_index_t">mxml_index_t</A>
|
||||
* ind);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>ind</TT></TD><TD>Index to enumerate</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Next node or NULL if there is none</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexDelete.html">Previous</A>
|
||||
<A HREF="mxmlIndexFind.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,62 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlIndexEnum.html">
|
||||
<LINK REL="Next" HREF="mxmlIndexNew.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexEnum.html">Previous</A>
|
||||
<A HREF="mxmlIndexNew.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlIndexFind">mxmlIndexFind()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Find the next matching node.</P>
|
||||
<P>You should call mxmlIndexReset() prior to using this function for the
|
||||
first time with a particular set of "element" and "value" strings.
|
||||
Passing NULL for both "element" and "value" is equivalent to calling
|
||||
mxmlIndexEnum().</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlIndexFind( <A href="mxmlindext.html#mxml_index_t">mxml_index_t</A>
|
||||
* ind, const char * element, const char * value);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>ind</TT></TD><TD>Index to search</TD></TR>
|
||||
<TR><TD><TT>element</TT></TD><TD>Element name to find, if any</TD></TR>
|
||||
<TR><TD><TT>value</TT></TD><TD>Attribute value, if any</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Node or NULL if none found</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexEnum.html">Previous</A>
|
||||
<A HREF="mxmlIndexNew.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,63 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlIndexFind.html">
|
||||
<LINK REL="Next" HREF="mxmlIndexReset.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexFind.html">Previous</A>
|
||||
<A HREF="mxmlIndexReset.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlIndexNew">mxmlIndexNew()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new index.</P>
|
||||
<P>The index will contain all nodes that contain the named element
|
||||
and/or attribute. If both "element" and "attr" are NULL, then the index
|
||||
will contain a sorted list of the elements in the node tree. Nodes are
|
||||
sorted by element name and optionally by attribute value if the "attr"
|
||||
argument is not NULL.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlindext.html#mxml_index_t">mxml_index_t</A> *
|
||||
<BR> mxmlIndexNew( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, const char * element, const char * attr);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>XML node tree</TD></TR>
|
||||
<TR><TD><TT>element</TT></TD><TD>Element to index or NULL for all</TD></TR>
|
||||
<TR><TD><TT>attr</TT></TD><TD>Attribute to index or NULL for none</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New index</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexFind.html">Previous</A>
|
||||
<A HREF="mxmlIndexReset.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,59 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlIndexNew.html">
|
||||
<LINK REL="Next" HREF="mxmlLoadFd.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexNew.html">Previous</A>
|
||||
<A HREF="mxmlLoadFd.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlIndexReset">mxmlIndexReset()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Reset the enumeration/find pointer in the index and return the first
|
||||
node in the index.</P>
|
||||
<P>This function should be called prior to using mxmlIndexEnum() or
|
||||
mxmlIndexFind() for the first time.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlIndexReset( <A href="mxmlindext.html#mxml_index_t">mxml_index_t</A>
|
||||
* ind);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>ind</TT></TD><TD>Index to reset</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>First node or NULL if there is none</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexNew.html">Previous</A>
|
||||
<A HREF="mxmlLoadFd.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,68 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlIndexReset.html">
|
||||
<LINK REL="Next" HREF="mxmlLoadFile.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexReset.html">Previous</A>
|
||||
<A HREF="mxmlLoadFile.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlLoadFd">mxmlLoadFd()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Load a file descriptor into an XML node tree.</P>
|
||||
<P>The nodes in the specified file are added to the specified top node.
|
||||
If no top node is provided, the XML file MUST be well-formed with a
|
||||
single parent node like <?xml> for the entire file. The callback
|
||||
function returns the value type that should be used for child nodes. If
|
||||
MXML_NO_CALLBACK is specified then all child nodes will be either
|
||||
MXML_ELEMENT or MXML_TEXT nodes.</P>
|
||||
<P>The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK,
|
||||
MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading
|
||||
child nodes of the specified type.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlLoadFd( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
top, int fd, <A href="mxmlloadcbt.html#mxml_load_cb_t">mxml_load_cb_t</A>
|
||||
cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>fd</TT></TD><TD>File descriptor to read from</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Callback function or MXML_NO_CALLBACK</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>First node or NULL if the file could not be read.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlIndexReset.html">Previous</A>
|
||||
<A HREF="mxmlLoadFile.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,68 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlLoadFd.html">
|
||||
<LINK REL="Next" HREF="mxmlLoadString.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlLoadFd.html">Previous</A>
|
||||
<A HREF="mxmlLoadString.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlLoadFile">mxmlLoadFile()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Load a file into an XML node tree.</P>
|
||||
<P>The nodes in the specified file are added to the specified top node.
|
||||
If no top node is provided, the XML file MUST be well-formed with a
|
||||
single parent node like <?xml> for the entire file. The callback
|
||||
function returns the value type that should be used for child nodes. If
|
||||
MXML_NO_CALLBACK is specified then all child nodes will be either
|
||||
MXML_ELEMENT or MXML_TEXT nodes.</P>
|
||||
<P>The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK,
|
||||
MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading
|
||||
child nodes of the specified type.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlLoadFile( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* top, FILE * fp, <A href="mxmlloadcbt.html#mxml_load_cb_t">
|
||||
mxml_load_cb_t</A> cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>fp</TT></TD><TD>File to read from</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Callback function or MXML_NO_CALLBACK</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>First node or NULL if the file could not be read.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlLoadFd.html">Previous</A>
|
||||
<A HREF="mxmlLoadString.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,68 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlLoadFile.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlNewCDATA.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlLoadFile.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlNewCDATA.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlLoadString">mxmlLoadString()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Load a string into an XML node tree.</P>
|
||||
<P>The nodes in the specified string are added to the specified top
|
||||
node. If no top node is provided, the XML string MUST be well-formed
|
||||
with a single parent node like <?xml> for the entire string. The
|
||||
callback function returns the value type that should be used for child
|
||||
nodes. If MXML_NO_CALLBACK is specified then all child nodes will be
|
||||
either MXML_ELEMENT or MXML_TEXT nodes.</P>
|
||||
<P>The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK,
|
||||
MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading
|
||||
child nodes of the specified type.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlLoadString( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* top, const char * s, <A href="mxmlloadcbt.html#mxml_load_cb_t">
|
||||
mxml_load_cb_t</A> cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>s</TT></TD><TD>String to load</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Callback function or MXML_NO_CALLBACK</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>First node or NULL if the string has errors.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlLoadFile.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlNewCDATA.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,60 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML21mxmlNewCustom.html">
|
||||
<LINK REL="Next" HREF="mxmlNewInteger.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML21mxmlNewCustom.html">Previous</A>
|
||||
<A HREF="mxmlNewInteger.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlNewElement">mxmlNewElement()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new element node.</P>
|
||||
<P>The new element node is added to the end of the specified parent's
|
||||
child list. The constant MXML_NO_PARENT can be used to specify that the
|
||||
new element node has no parent.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewElement( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* parent, const char * name);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>name</TT></TD><TD>Name of element</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML21mxmlNewCustom.html">Previous</A>
|
||||
<A HREF="mxmlNewInteger.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,60 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlNewElement.html">
|
||||
<LINK REL="Next" HREF="mxmlNewOpaque.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewElement.html">Previous</A>
|
||||
<A HREF="mxmlNewOpaque.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlNewInteger">mxmlNewInteger()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new integer node.</P>
|
||||
<P>The new integer node is added to the end of the specified parent's
|
||||
child list. The constant MXML_NO_PARENT can be used to specify that the
|
||||
new integer node has no parent.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewInteger( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* parent, int integer);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>integer</TT></TD><TD>Integer value</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewElement.html">Previous</A>
|
||||
<A HREF="mxmlNewOpaque.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,61 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlNewInteger.html">
|
||||
<LINK REL="Next" HREF="mxmlNewReal.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewInteger.html">Previous</A>
|
||||
<A HREF="mxmlNewReal.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlNewOpaque">mxmlNewOpaque()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new opaque string.</P>
|
||||
<P>The new opaque node is added to the end of the specified parent's
|
||||
child list. The constant MXML_NO_PARENT can be used to specify that the
|
||||
new opaque node has no parent. The opaque string must be nul-terminated
|
||||
and is copied into the new node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewOpaque( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* parent, const char * opaque);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>opaque</TT></TD><TD>Opaque string</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewInteger.html">Previous</A>
|
||||
<A HREF="mxmlNewReal.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,60 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlNewOpaque.html">
|
||||
<LINK REL="Next" HREF="mxmlNewText.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewOpaque.html">Previous</A>
|
||||
<A HREF="mxmlNewText.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlNewReal">mxmlNewReal()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new real number node.</P>
|
||||
<P>The new real number node is added to the end of the specified
|
||||
parent's child list. The constant MXML_NO_PARENT can be used to specify
|
||||
that the new real number node has no parent.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewReal( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
parent, double real);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>real</TT></TD><TD>Real number value</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewOpaque.html">Previous</A>
|
||||
<A HREF="mxmlNewText.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,64 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlNewReal.html">
|
||||
<LINK REL="Next" HREF="mxmlNewTextf.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewReal.html">Previous</A>
|
||||
<A HREF="mxmlNewTextf.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlNewText">mxmlNewText()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new text fragment node.</P>
|
||||
<P>The new text node is added to the end of the specified parent's child
|
||||
list. The constant MXML_NO_PARENT can be used to specify that the new
|
||||
text node has no parent. The whitespace parameter is used to specify
|
||||
whether leading whitespace is present before the node. The text string
|
||||
must be nul-terminated and is copied into the new node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewText( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
parent, int whitespace, const char * string);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>whitespace</TT></TD><TD>1 = leading whitespace, 0 = no
|
||||
whitespace</TD></TR>
|
||||
<TR><TD><TT>string</TT></TD><TD>String</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewReal.html">Previous</A>
|
||||
<A HREF="mxmlNewTextf.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,65 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlNewText.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlNewXML.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewText.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlNewXML.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlNewTextf">mxmlNewTextf()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Create a new formatted text fragment node.</P>
|
||||
<P>The new text node is added to the end of the specified parent's child
|
||||
list. The constant MXML_NO_PARENT can be used to specify that the new
|
||||
text node has no parent. The whitespace parameter is used to specify
|
||||
whether leading whitespace is present before the node. The format
|
||||
string must be nul-terminated and is formatted into the new node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlNewTextf( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* parent, int whitespace, const char * format, ...);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>parent</TT></TD><TD>Parent node or MXML_NO_PARENT</TD></TR>
|
||||
<TR><TD><TT>whitespace</TT></TD><TD>1 = leading whitespace, 0 = no
|
||||
whitespace</TD></TR>
|
||||
<TR><TD><TT>format</TT></TD><TD>Printf-style frmat string</TD></TR>
|
||||
<TR><TD><TT>...</TT></TD><TD>Additional args as needed</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>New node</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlNewText.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlNewXML.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlRelease.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlRetain.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlRelease.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlRetain.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlRemove">mxmlRemove()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Remove a node from its parent.</P>
|
||||
<P>Does not free memory used by the node - use mxmlDelete() for that.
|
||||
This function does nothing if the node has no parent.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlRemove( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
node);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to remove</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlRelease.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlRetain.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,69 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlSAXLoadString.html">
|
||||
<LINK REL="Next" HREF="mxmlSaveFd.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadString.html">Previous</A>
|
||||
<A HREF="mxmlSaveFd.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSaveAllocString">mxmlSaveAllocString()</A>
|
||||
</H3>
|
||||
<H4>Description</H4>
|
||||
<P>Save an XML node tree to an allocated string.</P>
|
||||
<P>This function returns a pointer to a string containing the textual
|
||||
representation of the XML node tree. The string should be freed using
|
||||
the free() function when you are done with it. NULL is returned if the
|
||||
node would produce an empty string or if the string cannot be
|
||||
allocated.</P>
|
||||
<P>The callback argument specifies a function that returns a whitespace
|
||||
string or NULL before and after each element. If MXML_NO_CALLBACK is
|
||||
specified, whitespace will only be added before MXML_TEXT nodes with
|
||||
leading whitespace and before attribute names inside opening element
|
||||
tags.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>char *
|
||||
<BR> mxmlSaveAllocString( <A href="mxmlnodet.html#mxml_node_t">
|
||||
mxml_node_t</A> * node, <A href="mxmlsavecbt.html#mxml_save_cb_t">
|
||||
mxml_save_cb_t</A> cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to write</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Whitespace callback or MXML_NO_CALLBACK</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Allocated string or NULL</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSAXLoadString.html">Previous</A>
|
||||
<A HREF="mxmlSaveFd.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,64 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSaveAllocString.html">
|
||||
<LINK REL="Next" HREF="mxmlSaveFile.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveAllocString.html">Previous</A>
|
||||
<A HREF="mxmlSaveFile.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSaveFd">mxmlSaveFd()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Save an XML tree to a file descriptor.</P>
|
||||
<P>The callback argument specifies a function that returns a whitespace
|
||||
string or NULL before and after each element. If MXML_NO_CALLBACK is
|
||||
specified, whitespace will only be added before MXML_TEXT nodes with
|
||||
leading whitespace and before attribute names inside opening element
|
||||
tags.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSaveFd( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
node, int fd, <A href="mxmlsavecbt.html#mxml_save_cb_t">mxml_save_cb_t</A>
|
||||
cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to write</TD></TR>
|
||||
<TR><TD><TT>fd</TT></TD><TD>File descriptor to write to</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Whitespace callback or MXML_NO_CALLBACK</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on error.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveAllocString.html">Previous</A>
|
||||
<A HREF="mxmlSaveFile.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,64 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSaveFd.html">
|
||||
<LINK REL="Next" HREF="mxmlSaveString.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveFd.html">Previous</A>
|
||||
<A HREF="mxmlSaveString.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSaveFile">mxmlSaveFile()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Save an XML tree to a file.</P>
|
||||
<P>The callback argument specifies a function that returns a whitespace
|
||||
string or NULL before and after each element. If MXML_NO_CALLBACK is
|
||||
specified, whitespace will only be added before MXML_TEXT nodes with
|
||||
leading whitespace and before attribute names inside opening element
|
||||
tags.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSaveFile( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, FILE * fp, <A href="mxmlsavecbt.html#mxml_save_cb_t">
|
||||
mxml_save_cb_t</A> cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to write</TD></TR>
|
||||
<TR><TD><TT>fp</TT></TD><TD>File to write to</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Whitespace callback or MXML_NO_CALLBACK</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on error.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveFd.html">Previous</A>
|
||||
<A HREF="mxmlSaveString.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,68 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSaveFile.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlSetCDATA.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveFile.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSetCDATA.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSaveString">mxmlSaveString()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Save an XML node tree to a string.</P>
|
||||
<P>This function returns the total number of bytes that would be
|
||||
required for the string but only copies (bufsize - 1) characters into
|
||||
the specified buffer.</P>
|
||||
<P>The callback argument specifies a function that returns a whitespace
|
||||
string or NULL before and after each element. If MXML_NO_CALLBACK is
|
||||
specified, whitespace will only be added before MXML_TEXT nodes with
|
||||
leading whitespace and before attribute names inside opening element
|
||||
tags.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSaveString( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, char * buffer, int bufsize, <A href="mxmlsavecbt.html#mxml_save_cb_t">
|
||||
mxml_save_cb_t</A> cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to write</TD></TR>
|
||||
<TR><TD><TT>buffer</TT></TD><TD>String buffer</TD></TR>
|
||||
<TR><TD><TT>bufsize</TT></TD><TD>Size of string buffer</TD></TR>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Whitespace callback or MXML_NO_CALLBACK</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Size of string</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSaveFile.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSetCDATA.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,63 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML21mxmlSetCustom.html">
|
||||
<LINK REL="Next" HREF="mxmlSetElement.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML21mxmlSetCustom.html">Previous</A>
|
||||
<A HREF="mxmlSetElement.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetCustomHandlers">
|
||||
mxmlSetCustomHandlers()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the handling functions for custom data.</P>
|
||||
<P>The load function accepts a node pointer and a data string and must
|
||||
return 0 on success and non-zero on error.</P>
|
||||
<P>The save function accepts a node pointer and must return a malloc'd
|
||||
string on success and NULL on error.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlSetCustomHandlers( <A href="mxmlcustomloadcbt.html#mxml_custom_load_cb_t">
|
||||
mxml_custom_load_cb_t</A> load, <A href="mxmlcustomsavecbt.html#mxml_custom_save_cb_t">
|
||||
mxml_custom_save_cb_t</A> save);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>load</TT></TD><TD>Load function</TD></TR>
|
||||
<TR><TD><TT>save</TT></TD><TD>Save function</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML21mxmlSetCustom.html">Previous</A>
|
||||
<A HREF="mxmlSetElement.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetCustomHandlers.html">
|
||||
<LINK REL="Next" HREF="mxmlSetErrorCallback.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetCustomHandlers.html">Previous</A>
|
||||
<A HREF="mxmlSetErrorCallback.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetElement">mxmlSetElement()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the name of an element node.</P>
|
||||
<P>The node is not changed if it is not an element node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetElement( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, const char * name);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>name</TT></TD><TD>New name string</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetCustomHandlers.html">Previous</A>
|
||||
<A HREF="mxmlSetErrorCallback.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,57 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetElement.html">
|
||||
<LINK REL="Next" HREF="mxmlSetInteger.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetElement.html">Previous</A>
|
||||
<A HREF="mxmlSetInteger.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetErrorCallback">mxmlSetErrorCallback()</A>
|
||||
</H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the error message callback.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>void
|
||||
<BR> mxmlSetErrorCallback( <A href="mxmlerrorcbt.html#mxml_error_cb_t">
|
||||
mxml_error_cb_t</A> cb);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>cb</TT></TD><TD>Error callback function</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Nothing.</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetElement.html">Previous</A>
|
||||
<A HREF="mxmlSetInteger.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetErrorCallback.html">
|
||||
<LINK REL="Next" HREF="mxmlSetOpaque.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetErrorCallback.html">Previous</A>
|
||||
<A HREF="mxmlSetOpaque.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetInteger">mxmlSetInteger()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the value of an integer node.</P>
|
||||
<P>The node is not changed if it is not an integer node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetInteger( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, int integer);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>integer</TT></TD><TD>Integer value</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetErrorCallback.html">Previous</A>
|
||||
<A HREF="mxmlSetOpaque.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetInteger.html">
|
||||
<LINK REL="Next" HREF="mxmlSetReal.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetInteger.html">Previous</A>
|
||||
<A HREF="mxmlSetReal.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetOpaque">mxmlSetOpaque()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the value of an opaque node.</P>
|
||||
<P>The node is not changed if it is not an opaque node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetOpaque( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, const char * opaque);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>opaque</TT></TD><TD>Opaque string</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetInteger.html">Previous</A>
|
||||
<A HREF="mxmlSetReal.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,58 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetOpaque.html">
|
||||
<LINK REL="Next" HREF="mxmlSetText.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetOpaque.html">Previous</A>
|
||||
<A HREF="mxmlSetText.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetReal">mxmlSetReal()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the value of a real number node.</P>
|
||||
<P>The node is not changed if it is not a real number node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetReal( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
node, double real);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>real</TT></TD><TD>Real number value</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetOpaque.html">Previous</A>
|
||||
<A HREF="mxmlSetText.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,60 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetReal.html">
|
||||
<LINK REL="Next" HREF="mxmlSetTextf.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetReal.html">Previous</A>
|
||||
<A HREF="mxmlSetTextf.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetText">mxmlSetText()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the value of a text node.</P>
|
||||
<P>The node is not changed if it is not a text node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetText( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
node, int whitespace, const char * string);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>whitespace</TT></TD><TD>1 = leading whitespace, 0 = no
|
||||
whitespace</TD></TR>
|
||||
<TR><TD><TT>string</TT></TD><TD>String</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetReal.html">Previous</A>
|
||||
<A HREF="mxmlSetTextf.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,61 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlSetText.html">
|
||||
<LINK REL="Next" HREF="MiniXML23mxmlSetWrapMargin.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetText.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSetWrapMargin.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlSetTextf">mxmlSetTextf()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Set the value of a text node to a formatted string.</P>
|
||||
<P>The node is not changed if it is not a text node.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT>int
|
||||
<BR> mxmlSetTextf( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, int whitespace, const char * format, ...);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Node to set</TD></TR>
|
||||
<TR><TD><TT>whitespace</TT></TD><TD>1 = leading whitespace, 0 = no
|
||||
whitespace</TD></TR>
|
||||
<TR><TD><TT>format</TT></TD><TD>Printf-style format string</TD></TR>
|
||||
<TR><TD><TT>...</TT></TD><TD>Additional arguments as needed</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>0 on success, -1 on failure</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlSetText.html">Previous</A>
|
||||
<A HREF="MiniXML23mxmlSetWrapMargin.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,63 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="MiniXML23mxmlSetWrapMargin.html">
|
||||
<LINK REL="Next" HREF="mxmlWalkPrev.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSetWrapMargin.html">Previous</A>
|
||||
<A HREF="mxmlWalkPrev.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlWalkNext">mxmlWalkNext()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Walk to the next logical node in the tree.</P>
|
||||
<P>The descend argument controls whether the first child is considered
|
||||
to be the next node. The top node argument constrains the walk to the
|
||||
node's children.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlWalkNext( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> * top, int
|
||||
descend);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Current node</TD></TR>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>descend</TT></TD><TD>Descend into tree - MXML_DESCEND,
|
||||
MXML_NO_DESCEND, or MXML_DESCEND_FIRST</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Next node or NULL</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="MiniXML23mxmlSetWrapMargin.html">Previous</A>
|
||||
<A HREF="mxmlWalkPrev.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,63 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="mxmlWalkNext.html">
|
||||
<LINK REL="Next" HREF="Structures.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlWalkNext.html">Previous</A>
|
||||
<A HREF="Structures.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxmlWalkPrev">mxmlWalkPrev()</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>Walk to the previous logical node in the tree.</P>
|
||||
<P>The descend argument controls whether the previous node's last child
|
||||
is considered to be the previous node. The top node argument constrains
|
||||
the walk to the node's children.</P>
|
||||
<H4>Syntax</H4>
|
||||
<P> <TT><A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> *
|
||||
<BR> mxmlWalkPrev( <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A>
|
||||
* node, <A href="mxmlnodet.html#mxml_node_t">mxml_node_t</A> * top, int
|
||||
descend);</TT></P>
|
||||
<H4>Arguments</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" cellpadding="5" cellspacing="0" summary="Arguments"
|
||||
width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>node</TT></TD><TD>Current node</TD></TR>
|
||||
<TR><TD><TT>top</TT></TD><TD>Top node</TD></TR>
|
||||
<TR><TD><TT>descend</TT></TD><TD>Descend into tree - MXML_DESCEND,
|
||||
MXML_NO_DESCEND, or MXML_DESCEND_FIRST</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<H4>Returns</H4>
|
||||
<P>Previous node or NULL</P>
|
||||
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="mxmlWalkNext.html">Previous</A>
|
||||
<A HREF="Structures.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
@ -1,55 +0,0 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Mini-XML Programmers Manual, Version 2.3</TITLE>
|
||||
<META NAME="author" CONTENT="Michael R. Sweet">
|
||||
<META NAME="copyright" CONTENT="Copyright 2003-2007">
|
||||
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
|
||||
<LINK REL="Start" HREF="index.html">
|
||||
<LINK REL="Contents" HREF="index.html">
|
||||
<LINK REL="Prev" HREF="Structures.html">
|
||||
<LINK REL="Next" HREF="MiniXML21mxmlcustoms.html">
|
||||
<STYLE TYPE="text/css"><!--
|
||||
BODY { font-family: sans-serif }
|
||||
H1 { font-family: sans-serif }
|
||||
H2 { font-family: sans-serif }
|
||||
H3 { font-family: sans-serif }
|
||||
H4 { font-family: sans-serif }
|
||||
H5 { font-family: sans-serif }
|
||||
H6 { font-family: sans-serif }
|
||||
SUB { font-size: smaller }
|
||||
SUP { font-size: smaller }
|
||||
PRE { font-family: monospace }
|
||||
A { text-decoration: none }
|
||||
--></STYLE>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Structures.html">Previous</A>
|
||||
<A HREF="MiniXML21mxmlcustoms.html">Next</A>
|
||||
<HR NOSHADE>
|
||||
<H3 class="title"><A name="mxml_attr_s">mxml_attr_s</A></H3>
|
||||
<H4>Description</H4>
|
||||
<P>An XML element attribute value.</P>
|
||||
<H4>Definition</H4>
|
||||
<P> <TT>struct mxml_attr_s
|
||||
<BR> {
|
||||
<BR> char * name;
|
||||
<BR> char * value;
|
||||
<BR> };</TT></P>
|
||||
<H4>Members</H4>
|
||||
<DIV class="table">
|
||||
<TABLE align="center" border="1" summary="Members" width="80%"><THEAD></THEAD>
|
||||
<TR><TH>Name</TH><TH>Description</TH></TR>
|
||||
<TBODY></TBODY>
|
||||
<TR><TD><TT>name</TT></TD><TD>Attribute name</TD></TR>
|
||||
<TR><TD><TT>value</TT></TD><TD>Attribute value</TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<!-- NEW PAGE -->
|
||||
<HR NOSHADE>
|
||||
<A HREF="index.html">Contents</A>
|
||||
<A HREF="Structures.html">Previous</A>
|
||||
<A HREF="MiniXML21mxmlcustoms.html">Next</A>
|
||||
</BODY>
|
||||
</HTML>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user