1651 lines
78 KiB
HTML
1651 lines
78 KiB
HTML
|
<!doctype html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Mini-XML API Reference</title>
|
||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||
|
<meta name="creator" content="Mini-XML v2.11">
|
||
|
<meta name="author" content="Michael R Sweet">
|
||
|
<meta name="copyright" content="Copyright 2003-2017, All Rights Reserved.">
|
||
|
<meta name="version" content="2.11">
|
||
|
<style type="text/css"><!--
|
||
|
body, p, h1, h2, h3, h4 {
|
||
|
font-family: sans-serif;
|
||
|
}
|
||
|
div.body h1 {
|
||
|
font-size: 250%;
|
||
|
font-weight: bold;
|
||
|
margin: 0;
|
||
|
}
|
||
|
div.body h2 {
|
||
|
font-size: 250%;
|
||
|
margin-top: 1.5em;
|
||
|
}
|
||
|
div.body h3 {
|
||
|
font-size: 150%;
|
||
|
margin-bottom: 0.5em;
|
||
|
margin-top: 1.5em;
|
||
|
}
|
||
|
div.body h4 {
|
||
|
font-size: 110%;
|
||
|
margin-bottom: 0.5em;
|
||
|
margin-top: 1.5em;
|
||
|
}
|
||
|
div.body h5 {
|
||
|
font-size: 100%;
|
||
|
margin-bottom: 0.5em;
|
||
|
margin-top: 1.5em;
|
||
|
}
|
||
|
div.contents {
|
||
|
background: #e8e8e8;
|
||
|
border: solid thin black;
|
||
|
padding: 10px;
|
||
|
}
|
||
|
div.contents h1 {
|
||
|
font-size: 110%;
|
||
|
}
|
||
|
div.contents h2 {
|
||
|
font-size: 100%;
|
||
|
}
|
||
|
div.contents ul.contents {
|
||
|
font-size: 80%;
|
||
|
}
|
||
|
.class {
|
||
|
border-bottom: solid 2px gray;
|
||
|
}
|
||
|
.constants {
|
||
|
}
|
||
|
.description {
|
||
|
margin-top: 0.5em;
|
||
|
}
|
||
|
.discussion {
|
||
|
}
|
||
|
.enumeration {
|
||
|
border-bottom: solid 2px gray;
|
||
|
}
|
||
|
.function {
|
||
|
border-bottom: solid 2px gray;
|
||
|
margin-bottom: 0;
|
||
|
}
|
||
|
.members {
|
||
|
}
|
||
|
.method {
|
||
|
}
|
||
|
.parameters {
|
||
|
}
|
||
|
.returnvalue {
|
||
|
}
|
||
|
.struct {
|
||
|
border-bottom: solid 2px gray;
|
||
|
}
|
||
|
.typedef {
|
||
|
border-bottom: solid 2px gray;
|
||
|
}
|
||
|
.union {
|
||
|
border-bottom: solid 2px gray;
|
||
|
}
|
||
|
.variable {
|
||
|
}
|
||
|
h1, h2, h3, h4, h5, h6 {
|
||
|
page-break-inside: avoid;
|
||
|
}
|
||
|
blockquote {
|
||
|
border: solid thin gray;
|
||
|
box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
|
||
|
padding: 0px 10px;
|
||
|
page-break-inside: avoid;
|
||
|
}
|
||
|
p code, li code, p.code, pre, ul.code li {
|
||
|
background: rgba(127,127,127,0.1);
|
||
|
border: thin dotted gray;
|
||
|
font-family: monospace;
|
||
|
font-size: 90%;
|
||
|
hyphens: manual;
|
||
|
-webkit-hyphens: manual;
|
||
|
page-break-inside: avoid;
|
||
|
}
|
||
|
p.code, pre, ul.code li {
|
||
|
padding: 10px;
|
||
|
}
|
||
|
p code, li code {
|
||
|
padding: 2px 5px;
|
||
|
}
|
||
|
a:link, a:visited {
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
span.info {
|
||
|
background: black;
|
||
|
border: solid thin black;
|
||
|
color: white;
|
||
|
font-size: 80%;
|
||
|
font-style: italic;
|
||
|
font-weight: bold;
|
||
|
white-space: nowrap;
|
||
|
}
|
||
|
h3 span.info, h4 span.info {
|
||
|
border-top-left-radius: 10px;
|
||
|
border-top-right-radius: 10px;
|
||
|
float: right;
|
||
|
padding: 3px 6px;
|
||
|
}
|
||
|
ul.code, ul.contents, ul.subcontents {
|
||
|
list-style-type: none;
|
||
|
margin: 0;
|
||
|
padding-left: 0;
|
||
|
}
|
||
|
ul.code li {
|
||
|
margin: 0;
|
||
|
}
|
||
|
ul.contents > li {
|
||
|
margin-top: 1em;
|
||
|
}
|
||
|
ul.contents li ul.code, ul.contents li ul.subcontents {
|
||
|
padding-left: 2em;
|
||
|
}
|
||
|
table.list {
|
||
|
border-collapse: collapse;
|
||
|
width: 100%;
|
||
|
}
|
||
|
table.list tr:nth-child(even) {
|
||
|
background: rgba(127,127,127,0.1);]n}
|
||
|
table.list th {
|
||
|
border-right: 2px solid gray;
|
||
|
font-family: monospace;
|
||
|
padding: 5px 10px 5px 2px;
|
||
|
text-align: right;
|
||
|
vertical-align: top;
|
||
|
}
|
||
|
table.list td {
|
||
|
padding: 5px 2px 5px 10px;
|
||
|
text-align: left;
|
||
|
vertical-align: top;
|
||
|
}
|
||
|
h1.title {
|
||
|
}
|
||
|
h2.title {
|
||
|
border-bottom: solid 2px black;
|
||
|
}
|
||
|
h3.title {
|
||
|
border-bottom: solid 2px black;
|
||
|
}
|
||
|
--></style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<h1 align="right"><a name="REFERENCE">Appendix B - Library Reference</a></h1>
|
||
|
<div class="contents">
|
||
|
<h2 class="title">Contents</h2>
|
||
|
<ul class="contents">
|
||
|
<li><a href="#FUNCTIONS">Functions</a><ul class="subcontents">
|
||
|
<li><a href="#mxmlAdd">mxmlAdd</a></li>
|
||
|
<li><a href="#mxmlDelete">mxmlDelete</a></li>
|
||
|
<li><a href="#mxmlElementDeleteAttr">mxmlElementDeleteAttr</a></li>
|
||
|
<li><a href="#mxmlElementGetAttr">mxmlElementGetAttr</a></li>
|
||
|
<li><a href="#mxmlElementGetAttrByIndex">mxmlElementGetAttrByIndex</a></li>
|
||
|
<li><a href="#mxmlElementGetAttrCount">mxmlElementGetAttrCount</a></li>
|
||
|
<li><a href="#mxmlElementSetAttr">mxmlElementSetAttr</a></li>
|
||
|
<li><a href="#mxmlElementSetAttrf">mxmlElementSetAttrf</a></li>
|
||
|
<li><a href="#mxmlEntityAddCallback">mxmlEntityAddCallback</a></li>
|
||
|
<li><a href="#mxmlEntityGetName">mxmlEntityGetName</a></li>
|
||
|
<li><a href="#mxmlEntityGetValue">mxmlEntityGetValue</a></li>
|
||
|
<li><a href="#mxmlEntityRemoveCallback">mxmlEntityRemoveCallback</a></li>
|
||
|
<li><a href="#mxmlFindElement">mxmlFindElement</a></li>
|
||
|
<li><a href="#mxmlFindPath">mxmlFindPath</a></li>
|
||
|
<li><a href="#mxmlGetCDATA">mxmlGetCDATA</a></li>
|
||
|
<li><a href="#mxmlGetCustom">mxmlGetCustom</a></li>
|
||
|
<li><a href="#mxmlGetElement">mxmlGetElement</a></li>
|
||
|
<li><a href="#mxmlGetFirstChild">mxmlGetFirstChild</a></li>
|
||
|
<li><a href="#mxmlGetInteger">mxmlGetInteger</a></li>
|
||
|
<li><a href="#mxmlGetLastChild">mxmlGetLastChild</a></li>
|
||
|
<li><a href="#mxmlGetNextSibling">mxmlGetNextSibling</a></li>
|
||
|
<li><a href="#mxmlGetOpaque">mxmlGetOpaque</a></li>
|
||
|
<li><a href="#mxmlGetParent">mxmlGetParent</a></li>
|
||
|
<li><a href="#mxmlGetPrevSibling">mxmlGetPrevSibling</a></li>
|
||
|
<li><a href="#mxmlGetReal">mxmlGetReal</a></li>
|
||
|
<li><a href="#mxmlGetRefCount">mxmlGetRefCount</a></li>
|
||
|
<li><a href="#mxmlGetText">mxmlGetText</a></li>
|
||
|
<li><a href="#mxmlGetType">mxmlGetType</a></li>
|
||
|
<li><a href="#mxmlGetUserData">mxmlGetUserData</a></li>
|
||
|
<li><a href="#mxmlIndexDelete">mxmlIndexDelete</a></li>
|
||
|
<li><a href="#mxmlIndexEnum">mxmlIndexEnum</a></li>
|
||
|
<li><a href="#mxmlIndexFind">mxmlIndexFind</a></li>
|
||
|
<li><a href="#mxmlIndexGetCount">mxmlIndexGetCount</a></li>
|
||
|
<li><a href="#mxmlIndexNew">mxmlIndexNew</a></li>
|
||
|
<li><a href="#mxmlIndexReset">mxmlIndexReset</a></li>
|
||
|
<li><a href="#mxmlLoadFd">mxmlLoadFd</a></li>
|
||
|
<li><a href="#mxmlLoadFile">mxmlLoadFile</a></li>
|
||
|
<li><a href="#mxmlLoadString">mxmlLoadString</a></li>
|
||
|
<li><a href="#mxmlNewCDATA">mxmlNewCDATA</a></li>
|
||
|
<li><a href="#mxmlNewCustom">mxmlNewCustom</a></li>
|
||
|
<li><a href="#mxmlNewElement">mxmlNewElement</a></li>
|
||
|
<li><a href="#mxmlNewInteger">mxmlNewInteger</a></li>
|
||
|
<li><a href="#mxmlNewOpaque">mxmlNewOpaque</a></li>
|
||
|
<li><a href="#mxmlNewOpaquef">mxmlNewOpaquef</a></li>
|
||
|
<li><a href="#mxmlNewReal">mxmlNewReal</a></li>
|
||
|
<li><a href="#mxmlNewText">mxmlNewText</a></li>
|
||
|
<li><a href="#mxmlNewTextf">mxmlNewTextf</a></li>
|
||
|
<li><a href="#mxmlNewXML">mxmlNewXML</a></li>
|
||
|
<li><a href="#mxmlRelease">mxmlRelease</a></li>
|
||
|
<li><a href="#mxmlRemove">mxmlRemove</a></li>
|
||
|
<li><a href="#mxmlRetain">mxmlRetain</a></li>
|
||
|
<li><a href="#mxmlSAXLoadFd">mxmlSAXLoadFd</a></li>
|
||
|
<li><a href="#mxmlSAXLoadFile">mxmlSAXLoadFile</a></li>
|
||
|
<li><a href="#mxmlSAXLoadString">mxmlSAXLoadString</a></li>
|
||
|
<li><a href="#mxmlSaveAllocString">mxmlSaveAllocString</a></li>
|
||
|
<li><a href="#mxmlSaveFd">mxmlSaveFd</a></li>
|
||
|
<li><a href="#mxmlSaveFile">mxmlSaveFile</a></li>
|
||
|
<li><a href="#mxmlSaveString">mxmlSaveString</a></li>
|
||
|
<li><a href="#mxmlSetCDATA">mxmlSetCDATA</a></li>
|
||
|
<li><a href="#mxmlSetCustom">mxmlSetCustom</a></li>
|
||
|
<li><a href="#mxmlSetCustomHandlers">mxmlSetCustomHandlers</a></li>
|
||
|
<li><a href="#mxmlSetElement">mxmlSetElement</a></li>
|
||
|
<li><a href="#mxmlSetErrorCallback">mxmlSetErrorCallback</a></li>
|
||
|
<li><a href="#mxmlSetInteger">mxmlSetInteger</a></li>
|
||
|
<li><a href="#mxmlSetOpaque">mxmlSetOpaque</a></li>
|
||
|
<li><a href="#mxmlSetOpaquef">mxmlSetOpaquef</a></li>
|
||
|
<li><a href="#mxmlSetReal">mxmlSetReal</a></li>
|
||
|
<li><a href="#mxmlSetText">mxmlSetText</a></li>
|
||
|
<li><a href="#mxmlSetTextf">mxmlSetTextf</a></li>
|
||
|
<li><a href="#mxmlSetUserData">mxmlSetUserData</a></li>
|
||
|
<li><a href="#mxmlSetWrapMargin">mxmlSetWrapMargin</a></li>
|
||
|
<li><a href="#mxmlWalkNext">mxmlWalkNext</a></li>
|
||
|
<li><a href="#mxmlWalkPrev">mxmlWalkPrev</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#TYPES">Data Types</a><ul class="subcontents">
|
||
|
<li><a href="#mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a></li>
|
||
|
<li><a href="#mxml_custom_load_cb_t">mxml_custom_load_cb_t</a></li>
|
||
|
<li><a href="#mxml_custom_save_cb_t">mxml_custom_save_cb_t</a></li>
|
||
|
<li><a href="#mxml_entity_cb_t">mxml_entity_cb_t</a></li>
|
||
|
<li><a href="#mxml_error_cb_t">mxml_error_cb_t</a></li>
|
||
|
<li><a href="#mxml_index_t">mxml_index_t</a></li>
|
||
|
<li><a href="#mxml_load_cb_t">mxml_load_cb_t</a></li>
|
||
|
<li><a href="#mxml_node_t">mxml_node_t</a></li>
|
||
|
<li><a href="#mxml_save_cb_t">mxml_save_cb_t</a></li>
|
||
|
<li><a href="#mxml_sax_cb_t">mxml_sax_cb_t</a></li>
|
||
|
<li><a href="#mxml_sax_event_t">mxml_sax_event_t</a></li>
|
||
|
<li><a href="#mxml_type_t">mxml_type_t</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#ENUMERATIONS">Enumerations</a><ul class="subcontents">
|
||
|
<li><a href="#mxml_sax_event_e">mxml_sax_event_e</a></li>
|
||
|
<li><a href="#mxml_type_e">mxml_type_e</a></li>
|
||
|
</ul></li>
|
||
|
</ul>
|
||
|
</div>
|
||
|
<div class="body">
|
||
|
<h2 class="title"><a id="FUNCTIONS">Functions</a></h2>
|
||
|
<h3 class="function"><a id="mxmlAdd">mxmlAdd</a></h3>
|
||
|
<p class="description">Add a node to a tree.</p>
|
||
|
<p class="code">
|
||
|
void mxmlAdd(<a href="#mxml_node_t">mxml_node_t</a> *parent, int where, <a href="#mxml_node_t">mxml_node_t</a> *child, <a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node</td></tr>
|
||
|
<tr><th>where</th>
|
||
|
<td class="description">Where to add, <code>MXML_ADD_BEFORE</code> or <code>MXML_ADD_AFTER</code></td></tr>
|
||
|
<tr><th>child</th>
|
||
|
<td class="description">Child node for where or <code>MXML_ADD_TO_PARENT</code></td></tr>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to add</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">Adds the specified node to the parent. If the child argument is not
|
||
|
<code>NULL</code>, puts the new node before or after the specified child depending
|
||
|
on the value of the where argument. If the child argument is <code>NULL</code>,
|
||
|
puts the new node at the beginning of the child list (<code>MXML_ADD_BEFORE</code>)
|
||
|
or at the end of the child list (<code>MXML_ADD_AFTER</code>). The constant
|
||
|
<code>MXML_ADD_TO_PARENT</code> can be used to specify a <code>NULL</code> child pointer.</p>
|
||
|
<h3 class="function"><a id="mxmlDelete">mxmlDelete</a></h3>
|
||
|
<p class="description">Delete a node and all of its children.</p>
|
||
|
<p class="code">
|
||
|
void mxmlDelete(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to delete</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">If the specified node has a parent, this function first removes the
|
||
|
node from its parent using the <a href="#mxmlRemove"><code>mxmlRemove</code></a> function.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.4 </span><a id="mxmlElementDeleteAttr">mxmlElementDeleteAttr</a></h3>
|
||
|
<p class="description">Delete an attribute.</p>
|
||
|
<p class="code">
|
||
|
void mxmlElementDeleteAttr(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *name);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Element</td></tr>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">Attribute name</td></tr>
|
||
|
</tbody></table>
|
||
|
<h3 class="function"><a id="mxmlElementGetAttr">mxmlElementGetAttr</a></h3>
|
||
|
<p class="description">Get an attribute.</p>
|
||
|
<p class="code">
|
||
|
const char *mxmlElementGetAttr(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *name);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Element node</td></tr>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">Name of attribute</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Attribute value or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">This function returns <code>NULL</code> if the node is not an element or the
|
||
|
named attribute does not exist.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.11 </span><a id="mxmlElementGetAttrByIndex">mxmlElementGetAttrByIndex</a></h3>
|
||
|
<p class="description">Get an element attribute by index.</p>
|
||
|
<p class="code">
|
||
|
const char *mxmlElementGetAttrByIndex(<a href="#mxml_node_t">mxml_node_t</a> *node, int idx, const char **name);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node</td></tr>
|
||
|
<tr><th>idx</th>
|
||
|
<td class="description">Attribute index, starting at 0</td></tr>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">Attribute name</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Attribute value</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The index ("idx") is 0-based. <code>NULL</code> is returned if the specified index
|
||
|
is out of range.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.11 </span><a id="mxmlElementGetAttrCount">mxmlElementGetAttrCount</a></h3>
|
||
|
<p class="description">Get the number of element attributes.</p>
|
||
|
<p class="code">
|
||
|
int mxmlElementGetAttrCount(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Number of attributes</p>
|
||
|
<h3 class="function"><a id="mxmlElementSetAttr">mxmlElementSetAttr</a></h3>
|
||
|
<p class="description">Set an attribute.</p>
|
||
|
<p class="code">
|
||
|
void mxmlElementSetAttr(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *name, const char *value);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Element node</td></tr>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">Name of attribute</td></tr>
|
||
|
<tr><th>value</th>
|
||
|
<td class="description">Attribute value</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlElementSetAttrf">mxmlElementSetAttrf</a></h3>
|
||
|
<p class="description">Set an attribute with a formatted value.</p>
|
||
|
<p class="code">
|
||
|
void mxmlElementSetAttrf(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *name, const char *format, ...);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Element node</td></tr>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">Name of attribute</td></tr>
|
||
|
<tr><th>format</th>
|
||
|
<td class="description">Printf-style attribute value</td></tr>
|
||
|
<tr><th>...</th>
|
||
|
<td class="description">Additional arguments as needed</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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>
|
||
|
<h3 class="function"><a id="mxmlEntityAddCallback">mxmlEntityAddCallback</a></h3>
|
||
|
<p class="description">Add a callback to convert entities to Unicode.</p>
|
||
|
<p class="code">
|
||
|
int mxmlEntityAddCallback(<a href="#mxml_entity_cb_t">mxml_entity_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function to add</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h3 class="function"><a id="mxmlEntityGetName">mxmlEntityGetName</a></h3>
|
||
|
<p class="description">Get the name that corresponds to the character value.</p>
|
||
|
<p class="code">
|
||
|
const char *mxmlEntityGetName(int val);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>val</th>
|
||
|
<td class="description">Character value</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Entity name or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">If val does not need to be represented by a named entity, <code>NULL</code> is returned.</p>
|
||
|
<h3 class="function"><a id="mxmlEntityGetValue">mxmlEntityGetValue</a></h3>
|
||
|
<p class="description">Get the character corresponding to a named entity.</p>
|
||
|
<p class="code">
|
||
|
int mxmlEntityGetValue(const char *name);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">Entity name</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Character value or -1 on error</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The entity name can also be a numeric constant. -1 is returned if the
|
||
|
name is not known.</p>
|
||
|
<h3 class="function"><a id="mxmlEntityRemoveCallback">mxmlEntityRemoveCallback</a></h3>
|
||
|
<p class="description">Remove a callback.</p>
|
||
|
<p class="code">
|
||
|
void mxmlEntityRemoveCallback(<a href="#mxml_entity_cb_t">mxml_entity_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function to remove</td></tr>
|
||
|
</tbody></table>
|
||
|
<h3 class="function"><a id="mxmlFindElement">mxmlFindElement</a></h3>
|
||
|
<p class="description">Find the named element.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlFindElement(<a href="#mxml_node_t">mxml_node_t</a> *node, <a href="#mxml_node_t">mxml_node_t</a> *top, const char *element, const char *attr, const char *value, int descend);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Current node</td></tr>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>element</th>
|
||
|
<td class="description">Element name or <code>NULL</code> for any</td></tr>
|
||
|
<tr><th>attr</th>
|
||
|
<td class="description">Attribute name, or <code>NULL</code> for none</td></tr>
|
||
|
<tr><th>value</th>
|
||
|
<td class="description">Attribute value, or <code>NULL</code> for any</td></tr>
|
||
|
<tr><th>descend</th>
|
||
|
<td class="description">Descend into tree - <code>MXML_DESCEND</code>, <code>MXML_NO_DESCEND</code>, or <code>MXML_DESCEND_FIRST</code></td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Element node or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The search is constrained by the name, attribute name, and value; any
|
||
|
<code>NULL</code> 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
|
||
|
<code>MXML_DESCEND_FIRST</code> for the initial search and <code>MXML_NO_DESCEND</code>
|
||
|
to find additional direct descendents of the node. The top node argument
|
||
|
constrains the search to a particular node's children.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlFindPath">mxmlFindPath</a></h3>
|
||
|
<p class="description">Find a node with the given path.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlFindPath(<a href="#mxml_node_t">mxml_node_t</a> *top, const char *path);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>path</th>
|
||
|
<td class="description">Path to element</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Found node or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The "path" is a slash-separated list of element names. The name "*" is
|
||
|
considered a wildcard for one or more levels of elements. For example,
|
||
|
"foo/one/two", "bar/two/one", "*/one", and so forth.<br>
|
||
|
<br>
|
||
|
The first child node of the found node is returned if the given node has
|
||
|
children and the first child is a value node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetCDATA">mxmlGetCDATA</a></h3>
|
||
|
<p class="description">Get the value for a CDATA node.</p>
|
||
|
<p class="code">
|
||
|
const char *mxmlGetCDATA(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">CDATA value or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if the node is not a CDATA element.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetCustom">mxmlGetCustom</a></h3>
|
||
|
<p class="description">Get the value for a custom node.</p>
|
||
|
<p class="code">
|
||
|
const void *mxmlGetCustom(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Custom value or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if the node (or its first child) is not a custom
|
||
|
value node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetElement">mxmlGetElement</a></h3>
|
||
|
<p class="description">Get the name for an element node.</p>
|
||
|
<p class="code">
|
||
|
const char *mxmlGetElement(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Element name or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if the node is not an element node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetFirstChild">mxmlGetFirstChild</a></h3>
|
||
|
<p class="description">Get the first child of an element node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlGetFirstChild(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First child or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if the node is not an element node or if the node
|
||
|
has no children.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetInteger">mxmlGetInteger</a></h3>
|
||
|
<p class="description">Get the integer value from the specified node or its
|
||
|
first child.</p>
|
||
|
<p class="code">
|
||
|
int mxmlGetInteger(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Integer value or 0</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">0 is returned if the node (or its first child) is not an integer value node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetLastChild">mxmlGetLastChild</a></h3>
|
||
|
<p class="description">Get the last child of an element node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlGetLastChild(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Last child or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if the node is not an element node or if the node
|
||
|
has no children.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><a id="mxmlGetNextSibling">mxmlGetNextSibling</a></h3>
|
||
|
<p class="description"></p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlGetNextSibling(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Get the next node for the current parent.</p>
|
||
|
<p class="discussion"><code>NULL</code> is returned if this is the last child for the current parent.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetOpaque">mxmlGetOpaque</a></h3>
|
||
|
<p class="description">Get an opaque string value for a node or its first child.</p>
|
||
|
<p class="code">
|
||
|
const char *mxmlGetOpaque(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Opaque string or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if the node (or its first child) is not an opaque
|
||
|
value node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetParent">mxmlGetParent</a></h3>
|
||
|
<p class="description">Get the parent node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlGetParent(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Parent node or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned for a root node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetPrevSibling">mxmlGetPrevSibling</a></h3>
|
||
|
<p class="description">Get the previous node for the current parent.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlGetPrevSibling(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Previous node or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if this is the first child for the current parent.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetReal">mxmlGetReal</a></h3>
|
||
|
<p class="description">Get the real value for a node or its first child.</p>
|
||
|
<p class="code">
|
||
|
double mxmlGetReal(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Real value or 0.0</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">0.0 is returned if the node (or its first child) is not a real value node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetRefCount">mxmlGetRefCount</a></h3>
|
||
|
<p class="description">Get the current reference (use) count for a node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlGetRefCount(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Reference count</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The initial reference count of new nodes is 1. Use the <a href="#mxmlRetain"><code>mxmlRetain</code></a>
|
||
|
and <a href="#mxmlRelease"><code>mxmlRelease</code></a> functions to increment and decrement a node's
|
||
|
reference count.
|
||
|
|
||
|
.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetText">mxmlGetText</a></h3>
|
||
|
<p class="description">Get the text value for a node or its first child.</p>
|
||
|
<p class="code">
|
||
|
const char *mxmlGetText(<a href="#mxml_node_t">mxml_node_t</a> *node, int *whitespace);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
<tr><th>whitespace</th>
|
||
|
<td class="description">1 if string is preceded by whitespace, 0 otherwise</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Text string or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>NULL</code> is returned if the node (or its first child) is not a text node.
|
||
|
The "whitespace" argument can be <code>NULL</code>.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetType">mxmlGetType</a></h3>
|
||
|
<p class="description">Get the node type.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_type_t">mxml_type_t</a> mxmlGetType(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Type of node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion"><code>MXML_IGNORE</code> is returned if "node" is <code>NULL</code>.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlGetUserData">mxmlGetUserData</a></h3>
|
||
|
<p class="description">Get the user data pointer for a node.</p>
|
||
|
<p class="code">
|
||
|
void *mxmlGetUserData(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to get</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">User data pointer</p>
|
||
|
<h3 class="function"><a id="mxmlIndexDelete">mxmlIndexDelete</a></h3>
|
||
|
<p class="description">Delete an index.</p>
|
||
|
<p class="code">
|
||
|
void mxmlIndexDelete(<a href="#mxml_index_t">mxml_index_t</a> *ind);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>ind</th>
|
||
|
<td class="description">Index to delete</td></tr>
|
||
|
</tbody></table>
|
||
|
<h3 class="function"><a id="mxmlIndexEnum">mxmlIndexEnum</a></h3>
|
||
|
<p class="description">Return the next node in the index.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlIndexEnum(<a href="#mxml_index_t">mxml_index_t</a> *ind);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>ind</th>
|
||
|
<td class="description">Index to enumerate</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Next node or <code>NULL</code> if there is none</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">You should call <a href="#mxmlIndexReset"><code>mxmlIndexReset</code></a> prior to using this function to get
|
||
|
the first node in the index. Nodes are returned in the sorted order of the
|
||
|
index.</p>
|
||
|
<h3 class="function"><a id="mxmlIndexFind">mxmlIndexFind</a></h3>
|
||
|
<p class="description">Find the next matching node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlIndexFind(<a href="#mxml_index_t">mxml_index_t</a> *ind, const char *element, const char *value);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>ind</th>
|
||
|
<td class="description">Index to search</td></tr>
|
||
|
<tr><th>element</th>
|
||
|
<td class="description">Element name to find, if any</td></tr>
|
||
|
<tr><th>value</th>
|
||
|
<td class="description">Attribute value, if any</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Node or <code>NULL</code> if none found</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">You should call <a href="#mxmlIndexReset"><code>mxmlIndexReset</code></a> prior to using this function for
|
||
|
the first time with a particular set of "element" and "value"
|
||
|
strings. Passing <code>NULL</code> for both "element" and "value" is equivalent
|
||
|
to calling <a href="#mxmlIndexEnum"><code>mxmlIndexEnum</code></a>.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlIndexGetCount">mxmlIndexGetCount</a></h3>
|
||
|
<p class="description">Get the number of nodes in an index.</p>
|
||
|
<p class="code">
|
||
|
int mxmlIndexGetCount(<a href="#mxml_index_t">mxml_index_t</a> *ind);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>ind</th>
|
||
|
<td class="description">Index of nodes</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Number of nodes in index</p>
|
||
|
<h3 class="function"><a id="mxmlIndexNew">mxmlIndexNew</a></h3>
|
||
|
<p class="description">Create a new index.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_index_t">mxml_index_t</a> *mxmlIndexNew(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *element, const char *attr);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">XML node tree</td></tr>
|
||
|
<tr><th>element</th>
|
||
|
<td class="description">Element to index or <code>NULL</code> for all</td></tr>
|
||
|
<tr><th>attr</th>
|
||
|
<td class="description">Attribute to index or <code>NULL</code> for none</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New index</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The index will contain all nodes that contain the named element and/or
|
||
|
attribute. If both "element" and "attr" are <code>NULL</code>, 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>
|
||
|
<h3 class="function"><a id="mxmlIndexReset">mxmlIndexReset</a></h3>
|
||
|
<p class="description">Reset the enumeration/find pointer in the index and
|
||
|
return the first node in the index.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlIndexReset(<a href="#mxml_index_t">mxml_index_t</a> *ind);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>ind</th>
|
||
|
<td class="description">Index to reset</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First node or <code>NULL</code> if there is none</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">This function should be called prior to using <a href="#mxmlIndexEnum"><code>mxmlIndexEnum</code></a> or
|
||
|
<a href="#mxmlIndexFind"><code>mxmlIndexFind</code></a> for the first time.</p>
|
||
|
<h3 class="function"><a id="mxmlLoadFd">mxmlLoadFd</a></h3>
|
||
|
<p class="description">Load a file descriptor into an XML node tree.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlLoadFd(<a href="#mxml_node_t">mxml_node_t</a> *top, int fd, <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>fd</th>
|
||
|
<td class="description">File descriptor to read from</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function or constant</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First node or <code>NULL</code> if the file could not be read.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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.
|
||
|
The constants <code>MXML_INTEGER_CALLBACK</code>, <code>MXML_OPAQUE_CALLBACK</code>,
|
||
|
<code>MXML_REAL_CALLBACK</code>, and <code>MXML_TEXT_CALLBACK</code> are defined for
|
||
|
loading child (data) nodes of the specified type.</p>
|
||
|
<h3 class="function"><a id="mxmlLoadFile">mxmlLoadFile</a></h3>
|
||
|
<p class="description">Load a file into an XML node tree.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlLoadFile(<a href="#mxml_node_t">mxml_node_t</a> *top, FILE *fp, <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>fp</th>
|
||
|
<td class="description">File to read from</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function or constant</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First node or <code>NULL</code> if the file could not be read.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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.
|
||
|
The constants <code>MXML_INTEGER_CALLBACK</code>, <code>MXML_OPAQUE_CALLBACK</code>,
|
||
|
<code>MXML_REAL_CALLBACK</code>, and <code>MXML_TEXT_CALLBACK</code> are defined for
|
||
|
loading child (data) nodes of the specified type.</p>
|
||
|
<h3 class="function"><a id="mxmlLoadString">mxmlLoadString</a></h3>
|
||
|
<p class="description">Load a string into an XML node tree.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlLoadString(<a href="#mxml_node_t">mxml_node_t</a> *top, const char *s, <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>s</th>
|
||
|
<td class="description">String to load</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function or constant</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First node or <code>NULL</code> if the string has errors.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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.
|
||
|
The constants <code>MXML_INTEGER_CALLBACK</code>, <code>MXML_OPAQUE_CALLBACK</code>,
|
||
|
<code>MXML_REAL_CALLBACK</code>, and <code>MXML_TEXT_CALLBACK</code> are defined for
|
||
|
loading child (data) nodes of the specified type.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlNewCDATA">mxmlNewCDATA</a></h3>
|
||
|
<p class="description">Create a new CDATA node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewCDATA(<a href="#mxml_node_t">mxml_node_t</a> *parent, const char *data);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>data</th>
|
||
|
<td class="description">Data string</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new CDATA node is added to the end of the specified parent's child
|
||
|
list. The constant <code>MXML_NO_PARENT</code> 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 currently use the
|
||
|
<code>MXML_ELEMENT</code> type.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.1 </span><a id="mxmlNewCustom">mxmlNewCustom</a></h3>
|
||
|
<p class="description">Create a new custom data node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewCustom(<a href="#mxml_node_t">mxml_node_t</a> *parent, void *data, <a href="#mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a> destroy);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>data</th>
|
||
|
<td class="description">Pointer to data</td></tr>
|
||
|
<tr><th>destroy</th>
|
||
|
<td class="description">Function to destroy data</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new custom node is added to the end of the specified parent's child
|
||
|
list. The constant <code>MXML_NO_PARENT</code> can be used to specify that the new
|
||
|
element node has no parent. <code>NULL</code> can be passed when the data in the
|
||
|
node is not dynamically allocated or is separately managed.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><a id="mxmlNewElement">mxmlNewElement</a></h3>
|
||
|
<p class="description">Create a new element node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewElement(<a href="#mxml_node_t">mxml_node_t</a> *parent, const char *name);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">Name of element</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new element node is added to the end of the specified parent's child
|
||
|
list. The constant <code>MXML_NO_PARENT</code> can be used to specify that the new
|
||
|
element node has no parent.</p>
|
||
|
<h3 class="function"><a id="mxmlNewInteger">mxmlNewInteger</a></h3>
|
||
|
<p class="description">Create a new integer node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewInteger(<a href="#mxml_node_t">mxml_node_t</a> *parent, int integer);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>integer</th>
|
||
|
<td class="description">Integer value</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new integer node is added to the end of the specified parent's child
|
||
|
list. The constant <code>MXML_NO_PARENT</code> can be used to specify that the new
|
||
|
integer node has no parent.</p>
|
||
|
<h3 class="function"><a id="mxmlNewOpaque">mxmlNewOpaque</a></h3>
|
||
|
<p class="description">Create a new opaque string.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewOpaque(<a href="#mxml_node_t">mxml_node_t</a> *parent, const char *opaque);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>opaque</th>
|
||
|
<td class="description">Opaque string</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new opaque string node is added to the end of the specified parent's
|
||
|
child list. The constant <code>MXML_NO_PARENT</code> can be used to specify that
|
||
|
the new opaque string node has no parent. The opaque string must be nul-
|
||
|
terminated and is copied into the new node.</p>
|
||
|
<h3 class="function"><a id="mxmlNewOpaquef">mxmlNewOpaquef</a></h3>
|
||
|
<p class="description">Create a new formatted opaque string node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewOpaquef(<a href="#mxml_node_t">mxml_node_t</a> *parent, const char *format, ...);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>format</th>
|
||
|
<td class="description">Printf-style format string</td></tr>
|
||
|
<tr><th>...</th>
|
||
|
<td class="description">Additional args as needed</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new opaque string node is added to the end of the specified parent's
|
||
|
child list. The constant <code>MXML_NO_PARENT</code> can be used to specify that
|
||
|
the new opaque string node has no parent. The format string must be
|
||
|
nul-terminated and is formatted into the new node.</p>
|
||
|
<h3 class="function"><a id="mxmlNewReal">mxmlNewReal</a></h3>
|
||
|
<p class="description">Create a new real number node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewReal(<a href="#mxml_node_t">mxml_node_t</a> *parent, double real);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>real</th>
|
||
|
<td class="description">Real number value</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new real number node is added to the end of the specified parent's
|
||
|
child list. The constant <code>MXML_NO_PARENT</code> can be used to specify that
|
||
|
the new real number node has no parent.</p>
|
||
|
<h3 class="function"><a id="mxmlNewText">mxmlNewText</a></h3>
|
||
|
<p class="description">Create a new text fragment node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewText(<a href="#mxml_node_t">mxml_node_t</a> *parent, int whitespace, const char *string);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>whitespace</th>
|
||
|
<td class="description">1 = leading whitespace, 0 = no whitespace</td></tr>
|
||
|
<tr><th>string</th>
|
||
|
<td class="description">String</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new text node is added to the end of the specified parent's child
|
||
|
list. The constant <code>MXML_NO_PARENT</code> 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>
|
||
|
<h3 class="function"><a id="mxmlNewTextf">mxmlNewTextf</a></h3>
|
||
|
<p class="description">Create a new formatted text fragment node.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewTextf(<a href="#mxml_node_t">mxml_node_t</a> *parent, int whitespace, const char *format, ...);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>parent</th>
|
||
|
<td class="description">Parent node or <code>MXML_NO_PARENT</code></td></tr>
|
||
|
<tr><th>whitespace</th>
|
||
|
<td class="description">1 = leading whitespace, 0 = no whitespace</td></tr>
|
||
|
<tr><th>format</th>
|
||
|
<td class="description">Printf-style format string</td></tr>
|
||
|
<tr><th>...</th>
|
||
|
<td class="description">Additional args as needed</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The new text node is added to the end of the specified parent's child
|
||
|
list. The constant <code>MXML_NO_PARENT</code> 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>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlNewXML">mxmlNewXML</a></h3>
|
||
|
<p class="description">Create a new XML document tree.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewXML(const char *version);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>version</th>
|
||
|
<td class="description">Version number to use</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New ?xml node</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The "version" argument specifies the version number to put in the
|
||
|
?xml element node. If <code>NULL</code>, version "1.0" is assumed.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlRelease">mxmlRelease</a></h3>
|
||
|
<p class="description">Release a node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlRelease(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New reference count</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">When the reference count reaches zero, the node (and any children)
|
||
|
is deleted via <a href="#mxmlDelete"><code>mxmlDelete</code></a>.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><a id="mxmlRemove">mxmlRemove</a></h3>
|
||
|
<p class="description">Remove a node from its parent.</p>
|
||
|
<p class="code">
|
||
|
void mxmlRemove(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to remove</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">This function does not free memory used by the node - use <a href="#mxmlDelete"><code>mxmlDelete</code></a>
|
||
|
for that. This function does nothing if the node has no parent.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlRetain">mxmlRetain</a></h3>
|
||
|
<p class="description">Retain a node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlRetain(<a href="#mxml_node_t">mxml_node_t</a> *node);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">New reference count</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlSAXLoadFd">mxmlSAXLoadFd</a></h3>
|
||
|
<p class="description">Load a file descriptor into an XML node tree
|
||
|
using a SAX callback.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlSAXLoadFd(<a href="#mxml_node_t">mxml_node_t</a> *top, int fd, <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb, <a href="#mxml_sax_cb_t">mxml_sax_cb_t</a> sax_cb, void *sax_data);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>fd</th>
|
||
|
<td class="description">File descriptor to read from</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function or constant</td></tr>
|
||
|
<tr><th>sax_cb</th>
|
||
|
<td class="description">SAX callback or <code>MXML_NO_CALLBACK</code></td></tr>
|
||
|
<tr><th>sax_data</th>
|
||
|
<td class="description">SAX user data</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First node or <code>NULL</code> if the file could not be read.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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.
|
||
|
The constants <code>MXML_INTEGER_CALLBACK</code>, <code>MXML_OPAQUE_CALLBACK</code>,
|
||
|
<code>MXML_REAL_CALLBACK</code>, and <code>MXML_TEXT_CALLBACK</code> are defined for
|
||
|
loading child nodes of the specified type.<br>
|
||
|
<br>
|
||
|
The SAX callback must call <a href="#mxmlRetain"><code>mxmlRetain</code></a> 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>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlSAXLoadFile">mxmlSAXLoadFile</a></h3>
|
||
|
<p class="description">Load a file into an XML node tree
|
||
|
using a SAX callback.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlSAXLoadFile(<a href="#mxml_node_t">mxml_node_t</a> *top, FILE *fp, <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb, <a href="#mxml_sax_cb_t">mxml_sax_cb_t</a> sax_cb, void *sax_data);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>fp</th>
|
||
|
<td class="description">File to read from</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function or constant</td></tr>
|
||
|
<tr><th>sax_cb</th>
|
||
|
<td class="description">SAX callback or <code>MXML_NO_CALLBACK</code></td></tr>
|
||
|
<tr><th>sax_data</th>
|
||
|
<td class="description">SAX user data</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First node or <code>NULL</code> if the file could not be read.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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.
|
||
|
The constants <code>MXML_INTEGER_CALLBACK</code>, <code>MXML_OPAQUE_CALLBACK</code>,
|
||
|
<code>MXML_REAL_CALLBACK</code>, and <code>MXML_TEXT_CALLBACK</code> are defined for
|
||
|
loading child nodes of the specified type.<br>
|
||
|
<br>
|
||
|
The SAX callback must call <a href="#mxmlRetain"><code>mxmlRetain</code></a> 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>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlSAXLoadString">mxmlSAXLoadString</a></h3>
|
||
|
<p class="description">Load a string into an XML node tree
|
||
|
using a SAX callback.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlSAXLoadString(<a href="#mxml_node_t">mxml_node_t</a> *top, const char *s, <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb, <a href="#mxml_sax_cb_t">mxml_sax_cb_t</a> sax_cb, void *sax_data);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>s</th>
|
||
|
<td class="description">String to load</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Callback function or constant</td></tr>
|
||
|
<tr><th>sax_cb</th>
|
||
|
<td class="description">SAX callback or <code>MXML_NO_CALLBACK</code></td></tr>
|
||
|
<tr><th>sax_data</th>
|
||
|
<td class="description">SAX user data</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">First node or <code>NULL</code> if the string has errors.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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.
|
||
|
The constants <code>MXML_INTEGER_CALLBACK</code>, <code>MXML_OPAQUE_CALLBACK</code>,
|
||
|
<code>MXML_REAL_CALLBACK</code>, and <code>MXML_TEXT_CALLBACK</code> are defined for
|
||
|
loading child nodes of the specified type.<br>
|
||
|
<br>
|
||
|
The SAX callback must call <a href="#mxmlRetain"><code>mxmlRetain</code></a> 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>
|
||
|
<h3 class="function"><a id="mxmlSaveAllocString">mxmlSaveAllocString</a></h3>
|
||
|
<p class="description">Save an XML tree to an allocated string.</p>
|
||
|
<p class="code">
|
||
|
char *mxmlSaveAllocString(<a href="#mxml_node_t">mxml_node_t</a> *node, <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to write</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Whitespace callback or <code>MXML_NO_CALLBACK</code></td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Allocated string or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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. <code>NULL</code> is returned
|
||
|
if the node would produce an empty string or if the string cannot be
|
||
|
allocated.<br>
|
||
|
<br>
|
||
|
The callback argument specifies a function that returns a whitespace
|
||
|
string or NULL before and after each element. If <code>MXML_NO_CALLBACK</code>
|
||
|
is specified, whitespace will only be added before <code>MXML_TEXT</code> nodes
|
||
|
with leading whitespace and before attribute names inside opening
|
||
|
element tags.</p>
|
||
|
<h3 class="function"><a id="mxmlSaveFd">mxmlSaveFd</a></h3>
|
||
|
<p class="description">Save an XML tree to a file descriptor.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSaveFd(<a href="#mxml_node_t">mxml_node_t</a> *node, int fd, <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to write</td></tr>
|
||
|
<tr><th>fd</th>
|
||
|
<td class="description">File descriptor to write to</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Whitespace callback or <code>MXML_NO_CALLBACK</code></td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on error.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The callback argument specifies a function that returns a whitespace
|
||
|
string or NULL before and after each element. If <code>MXML_NO_CALLBACK</code>
|
||
|
is specified, whitespace will only be added before <code>MXML_TEXT</code> nodes
|
||
|
with leading whitespace and before attribute names inside opening
|
||
|
element tags.</p>
|
||
|
<h3 class="function"><a id="mxmlSaveFile">mxmlSaveFile</a></h3>
|
||
|
<p class="description">Save an XML tree to a file.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSaveFile(<a href="#mxml_node_t">mxml_node_t</a> *node, FILE *fp, <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to write</td></tr>
|
||
|
<tr><th>fp</th>
|
||
|
<td class="description">File to write to</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Whitespace callback or <code>MXML_NO_CALLBACK</code></td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on error.</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The callback argument specifies a function that returns a whitespace
|
||
|
string or NULL before and after each element. If <code>MXML_NO_CALLBACK</code>
|
||
|
is specified, whitespace will only be added before <code>MXML_TEXT</code> nodes
|
||
|
with leading whitespace and before attribute names inside opening
|
||
|
element tags.</p>
|
||
|
<h3 class="function"><a id="mxmlSaveString">mxmlSaveString</a></h3>
|
||
|
<p class="description">Save an XML node tree to a string.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSaveString(<a href="#mxml_node_t">mxml_node_t</a> *node, char *buffer, int bufsize, <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to write</td></tr>
|
||
|
<tr><th>buffer</th>
|
||
|
<td class="description">String buffer</td></tr>
|
||
|
<tr><th>bufsize</th>
|
||
|
<td class="description">Size of string buffer</td></tr>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Whitespace callback or <code>MXML_NO_CALLBACK</code></td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Size of string</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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.<br>
|
||
|
<br>
|
||
|
The callback argument specifies a function that returns a whitespace
|
||
|
string or NULL before and after each element. If <code>MXML_NO_CALLBACK</code>
|
||
|
is specified, whitespace will only be added before <code>MXML_TEXT</code> nodes
|
||
|
with leading whitespace and before attribute names inside opening
|
||
|
element tags.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlSetCDATA">mxmlSetCDATA</a></h3>
|
||
|
<p class="description">Set the element name of a CDATA node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetCDATA(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *data);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>data</th>
|
||
|
<td class="description">New data string</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not a CDATA element node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.1 </span><a id="mxmlSetCustom">mxmlSetCustom</a></h3>
|
||
|
<p class="description">Set the data and destructor of a custom data node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetCustom(<a href="#mxml_node_t">mxml_node_t</a> *node, void *data, <a href="#mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a> destroy);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>data</th>
|
||
|
<td class="description">New data pointer</td></tr>
|
||
|
<tr><th>destroy</th>
|
||
|
<td class="description">New destructor function</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not a custom node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><a id="mxmlSetCustomHandlers">mxmlSetCustomHandlers</a></h3>
|
||
|
<p class="description">Set the handling functions for custom data.</p>
|
||
|
<p class="code">
|
||
|
void mxmlSetCustomHandlers(<a href="#mxml_custom_load_cb_t">mxml_custom_load_cb_t</a> load, <a href="#mxml_custom_save_cb_t">mxml_custom_save_cb_t</a> save);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>load</th>
|
||
|
<td class="description">Load function</td></tr>
|
||
|
<tr><th>save</th>
|
||
|
<td class="description">Save function</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The load function accepts a node pointer and a data string and must
|
||
|
return 0 on success and non-zero on error.<br>
|
||
|
<br>
|
||
|
The save function accepts a node pointer and must return a malloc'd
|
||
|
string on success and <code>NULL</code> on error.</p>
|
||
|
<h3 class="function"><a id="mxmlSetElement">mxmlSetElement</a></h3>
|
||
|
<p class="description">Set the name of an element node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetElement(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *name);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>name</th>
|
||
|
<td class="description">New name string</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it is not an element node.</p>
|
||
|
<h3 class="function"><a id="mxmlSetErrorCallback">mxmlSetErrorCallback</a></h3>
|
||
|
<p class="description">Set the error message callback.</p>
|
||
|
<p class="code">
|
||
|
void mxmlSetErrorCallback(<a href="#mxml_error_cb_t">mxml_error_cb_t</a> cb);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>cb</th>
|
||
|
<td class="description">Error callback function</td></tr>
|
||
|
</tbody></table>
|
||
|
<h3 class="function"><a id="mxmlSetInteger">mxmlSetInteger</a></h3>
|
||
|
<p class="description">Set the value of an integer node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetInteger(<a href="#mxml_node_t">mxml_node_t</a> *node, int integer);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>integer</th>
|
||
|
<td class="description">Integer value</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not an integer node.</p>
|
||
|
<h3 class="function"><a id="mxmlSetOpaque">mxmlSetOpaque</a></h3>
|
||
|
<p class="description">Set the value of an opaque node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetOpaque(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *opaque);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>opaque</th>
|
||
|
<td class="description">Opaque string</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not an opaque node.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.11 </span><a id="mxmlSetOpaquef">mxmlSetOpaquef</a></h3>
|
||
|
<p class="description">Set the value of an opaque string node to a formatted string.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetOpaquef(<a href="#mxml_node_t">mxml_node_t</a> *node, const char *format, ...);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>format</th>
|
||
|
<td class="description">Printf-style format string</td></tr>
|
||
|
<tr><th>...</th>
|
||
|
<td class="description">Additional arguments as needed</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not an opaque node.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><a id="mxmlSetReal">mxmlSetReal</a></h3>
|
||
|
<p class="description">Set the value of a real number node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetReal(<a href="#mxml_node_t">mxml_node_t</a> *node, double real);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>real</th>
|
||
|
<td class="description">Real number value</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not a real number node.</p>
|
||
|
<h3 class="function"><a id="mxmlSetText">mxmlSetText</a></h3>
|
||
|
<p class="description">Set the value of a text node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetText(<a href="#mxml_node_t">mxml_node_t</a> *node, int whitespace, const char *string);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>whitespace</th>
|
||
|
<td class="description">1 = leading whitespace, 0 = no whitespace</td></tr>
|
||
|
<tr><th>string</th>
|
||
|
<td class="description">String</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not a text node.</p>
|
||
|
<h3 class="function"><a id="mxmlSetTextf">mxmlSetTextf</a></h3>
|
||
|
<p class="description">Set the value of a text node to a formatted string.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetTextf(<a href="#mxml_node_t">mxml_node_t</a> *node, int whitespace, const char *format, ...);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>whitespace</th>
|
||
|
<td class="description">1 = leading whitespace, 0 = no whitespace</td></tr>
|
||
|
<tr><th>format</th>
|
||
|
<td class="description">Printf-style format string</td></tr>
|
||
|
<tr><th>...</th>
|
||
|
<td class="description">Additional arguments as needed</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">The node is not changed if it (or its first child) is not a text node.</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.7 </span><a id="mxmlSetUserData">mxmlSetUserData</a></h3>
|
||
|
<p class="description">Set the user data pointer for a node.</p>
|
||
|
<p class="code">
|
||
|
int mxmlSetUserData(<a href="#mxml_node_t">mxml_node_t</a> *node, void *data);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Node to set</td></tr>
|
||
|
<tr><th>data</th>
|
||
|
<td class="description">User data pointer</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">0 on success, -1 on failure</p>
|
||
|
<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a id="mxmlSetWrapMargin">mxmlSetWrapMargin</a></h3>
|
||
|
<p class="description">Set the wrap margin when saving XML data.</p>
|
||
|
<p class="code">
|
||
|
void mxmlSetWrapMargin(int column);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>column</th>
|
||
|
<td class="description">Column for wrapping, 0 to disable wrapping</td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">Wrapping is disabled when "column" is 0.
|
||
|
|
||
|
</p>
|
||
|
<h3 class="function"><a id="mxmlWalkNext">mxmlWalkNext</a></h3>
|
||
|
<p class="description">Walk to the next logical node in the tree.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlWalkNext(<a href="#mxml_node_t">mxml_node_t</a> *node, <a href="#mxml_node_t">mxml_node_t</a> *top, int descend);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Current node</td></tr>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>descend</th>
|
||
|
<td class="description">Descend into tree - <code>MXML_DESCEND</code>, <code>MXML_NO_DESCEND</code>, or <code>MXML_DESCEND_FIRST</code></td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Next node or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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>
|
||
|
<h3 class="function"><a id="mxmlWalkPrev">mxmlWalkPrev</a></h3>
|
||
|
<p class="description">Walk to the previous logical node in the tree.</p>
|
||
|
<p class="code">
|
||
|
<a href="#mxml_node_t">mxml_node_t</a> *mxmlWalkPrev(<a href="#mxml_node_t">mxml_node_t</a> *node, <a href="#mxml_node_t">mxml_node_t</a> *top, int descend);</p>
|
||
|
<h4 class="parameters">Parameters</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>node</th>
|
||
|
<td class="description">Current node</td></tr>
|
||
|
<tr><th>top</th>
|
||
|
<td class="description">Top node</td></tr>
|
||
|
<tr><th>descend</th>
|
||
|
<td class="description">Descend into tree - <code>MXML_DESCEND</code>, <code>MXML_NO_DESCEND</code>, or <code>MXML_DESCEND_FIRST</code></td></tr>
|
||
|
</tbody></table>
|
||
|
<h4 class="returnvalue">Return Value</h4>
|
||
|
<p class="description">Previous node or <code>NULL</code></p>
|
||
|
<h4 class="discussion">Discussion</h4>
|
||
|
<p class="discussion">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>
|
||
|
<h2 class="title"><a id="TYPES">Data Types</a></h2>
|
||
|
<h3 class="typedef"><a id="mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a></h3>
|
||
|
<p class="description">Custom data destructor</p>
|
||
|
<p class="code">
|
||
|
typedef void (*mxml_custom_destroy_cb_t)(void *);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_custom_load_cb_t">mxml_custom_load_cb_t</a></h3>
|
||
|
<p class="description">Custom data load callback function</p>
|
||
|
<p class="code">
|
||
|
typedef int (*mxml_custom_load_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *, const char *);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_custom_save_cb_t">mxml_custom_save_cb_t</a></h3>
|
||
|
<p class="description">Custom data save callback function</p>
|
||
|
<p class="code">
|
||
|
typedef char *(*mxml_custom_save_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_entity_cb_t">mxml_entity_cb_t</a></h3>
|
||
|
<p class="description">Entity callback function</p>
|
||
|
<p class="code">
|
||
|
typedef int (*mxml_entity_cb_t)(const char *);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_error_cb_t">mxml_error_cb_t</a></h3>
|
||
|
<p class="description">Error callback function</p>
|
||
|
<p class="code">
|
||
|
typedef void (*mxml_error_cb_t)(const char *);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_index_t">mxml_index_t</a></h3>
|
||
|
<p class="description">An XML node index.</p>
|
||
|
<p class="code">
|
||
|
typedef struct mxml_index_s mxml_index_t;
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_load_cb_t">mxml_load_cb_t</a></h3>
|
||
|
<p class="description">Load callback function</p>
|
||
|
<p class="code">
|
||
|
typedef <a href="#mxml_type_t">mxml_type_t</a> (*mxml_load_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_node_t">mxml_node_t</a></h3>
|
||
|
<p class="description">An XML node.</p>
|
||
|
<p class="code">
|
||
|
typedef struct mxml_node_s mxml_node_t;
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_save_cb_t">mxml_save_cb_t</a></h3>
|
||
|
<p class="description">Save callback function</p>
|
||
|
<p class="code">
|
||
|
typedef const char *(*mxml_save_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *, int);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_sax_cb_t">mxml_sax_cb_t</a></h3>
|
||
|
<p class="description">SAX callback function</p>
|
||
|
<p class="code">
|
||
|
typedef void (*mxml_sax_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *, mxml_sax_event_t, void *);
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_sax_event_t">mxml_sax_event_t</a></h3>
|
||
|
<p class="description">SAX event type.</p>
|
||
|
<p class="code">
|
||
|
typedef enum <a href="#mxml_sax_event_e">mxml_sax_event_e</a> mxml_sax_event_t;
|
||
|
</p>
|
||
|
<h3 class="typedef"><a id="mxml_type_t">mxml_type_t</a></h3>
|
||
|
<p class="description">The XML node type.</p>
|
||
|
<p class="code">
|
||
|
typedef enum <a href="#mxml_type_e">mxml_type_e</a> mxml_type_t;
|
||
|
</p>
|
||
|
<h2 class="title"><a id="ENUMERATIONS">Constants</a></h2>
|
||
|
<h3 class="enumeration"><a id="mxml_sax_event_e">mxml_sax_event_e</a></h3>
|
||
|
<p class="description">SAX event type.</p>
|
||
|
<h4 class="constants">Constants</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>MXML_SAX_CDATA </th> <td class="description">CDATA node</td></tr>
|
||
|
<tr><th>MXML_SAX_COMMENT </th> <td class="description">Comment node</td></tr>
|
||
|
<tr><th>MXML_SAX_DATA </th> <td class="description">Data node</td></tr>
|
||
|
<tr><th>MXML_SAX_DIRECTIVE </th> <td class="description">Processing directive node</td></tr>
|
||
|
<tr><th>MXML_SAX_ELEMENT_CLOSE </th> <td class="description">Element closed</td></tr>
|
||
|
<tr><th>MXML_SAX_ELEMENT_OPEN </th> <td class="description">Element opened</td></tr>
|
||
|
</tbody></table>
|
||
|
<h3 class="enumeration"><a id="mxml_type_e">mxml_type_e</a></h3>
|
||
|
<p class="description">The XML node type.</p>
|
||
|
<h4 class="constants">Constants</h4>
|
||
|
<table class="list"><tbody>
|
||
|
<tr><th>MXML_CUSTOM <span class="info"> Mini-XML 2.1 </span></th> <td class="description">Custom data </td></tr>
|
||
|
<tr><th>MXML_ELEMENT </th> <td class="description">XML element with attributes</td></tr>
|
||
|
<tr><th>MXML_IGNORE <span class="info"> Mini-XML 2.3 </span></th> <td class="description">Ignore/throw away node </td></tr>
|
||
|
<tr><th>MXML_INTEGER </th> <td class="description">Integer value</td></tr>
|
||
|
<tr><th>MXML_OPAQUE </th> <td class="description">Opaque string</td></tr>
|
||
|
<tr><th>MXML_REAL </th> <td class="description">Real value</td></tr>
|
||
|
<tr><th>MXML_TEXT </th> <td class="description">Text fragment</td></tr>
|
||
|
</tbody></table>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|