亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mxml.html

?? minixml2.5最新的版本。 嵌入式xml 解析、查找、生成、遍歷 功能,全部實現是標準c,移植很容易。 最新的2.5
?? HTML
?? 第 1 頁 / 共 5 頁
字號:
 Library General Public License for more details.</P><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, &quot;Debug&quot; (the default) or &quot;Release&quot;, 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 (&quot;RPM&quot;) 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><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 (&quot;cdata&quot;), and text data types in &quot;leaf&quot; nodes.</LI><LI>&quot;Find&quot;, &quot;index&quot;, and &quot;walk&quot; 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 &lt;mxml.h&gt;</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 &quot;nodes&quot;. Nodes are defined by the <A href="#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="#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-&gt;value.custom.data</TT></TD></TR><TR><TD>Element</TD><TD><TT>char *</TT></TD><TD><TT>node-&gt;value.element.name</TT></TD></TR><TR><TD>Integer</TD><TD><TT>int</TT></TD><TD><TT>node-&gt;value.integer</TT></TD></TR><TR><TD>Opaque (string)</TD><TD><TT>char *</TT></TD><TD><TT>node-&gt;value.opaque</TT></TD></TR><TR><TD>Real</TD><TD><TT>double</TT></TD><TD><TT>node-&gt;value.real</TT></TD></TR><TR><TD>Text</TD><TD><TT>char *</TT></TD><TD><TT>node-&gt;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"><TT>mxmlNewElement</TT></A>, <A href="#mxmlNewInteger"><TT>mxmlNewInteger</TT></A>, <A href="#mxmlNewOpaque"><TT>mxmlNewOpaque</TT></A>, <A href="#mxmlNewReal"><TT>mxmlNewReal</TT></A>, <A href="#mxmlNewText"><TT>mxmlNewText</TT></A> <A href="#mxmlNewTextf"><TT>mxmlNewTextf</TT></A> <A href="#mxmlNewXML"><TT>mxmlNewXML</TT></A> functions. Only elements can have child nodes, and the top node must be an element, usually the <TT>&lt;?xml version=&quot;1.0&quot;?&gt;</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>    &lt;?xml version=&quot;1.0&quot;?&gt;    &lt;data&gt;        &lt;node&gt;val1&lt;/node&gt;        &lt;node&gt;val2&lt;/node&gt;        &lt;node&gt;val3&lt;/node&gt;        &lt;group&gt;            &lt;node&gt;val4&lt;/node&gt;            &lt;node&gt;val5&lt;/node&gt;            &lt;node&gt;val6&lt;/node&gt;        &lt;/group&gt;        &lt;node&gt;val7&lt;/node&gt;        &lt;node&gt;val8&lt;/node&gt;    &lt;/data&gt;</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 &quot;-&quot; is a pointer to the next node and &quot;|&quot; is a pointer to the first child node.</P><P>Once you are done with the XML data, use the <A href="#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;    /* &lt;?xml ... ?&gt; */    mxml_node_t *data;   /* &lt;data&gt; */    mxml_node_t *node;   /* &lt;node&gt; */    mxml_node_t *group;  /* &lt;group&gt; */    xml = mxmlNewXML(&quot;1.0&quot;);    data = mxmlNewElement(xml, &quot;data&quot;);        node = mxmlNewElement(data, &quot;node&quot;);        mxmlNewText(node, 0, &quot;val1&quot;);        node = mxmlNewElement(data, &quot;node&quot;);        mxmlNewText(node, 0, &quot;val2&quot;);        node = mxmlNewElement(data, &quot;node&quot;);        mxmlNewText(node, 0, &quot;val3&quot;);        group = mxmlNewElement(data, &quot;group&quot;);            node = mxmlNewElement(group, &quot;node&quot;);            mxmlNewText(node, 0, &quot;val4&quot;);            node = mxmlNewElement(group, &quot;node&quot;);            mxmlNewText(node, 0, &quot;val5&quot;);            node = mxmlNewElement(group, &quot;node&quot;);            mxmlNewText(node, 0, &quot;val6&quot;);        node = mxmlNewElement(data, &quot;node&quot;);        mxmlNewText(node, 0, &quot;val7&quot;);        node = mxmlNewElement(data, &quot;node&quot;);        mxmlNewText(node, 0, &quot;val8&quot;);</PRE><P>We start by creating the <TT>&lt;?xml version=&quot;1.0&quot;?&gt;</TT> node common to all XML files using the <A href="#mxmlNewXML"><TT>mxmlNewXML</TT></A> function:</P><PRE>    xml = mxmlNewXML(&quot;1.0&quot;);</PRE><P>We then create the <TT>&lt;data&gt;</TT> node used for this document using the <A href="#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, &quot;data&quot;);</PRE><P>Each <TT>&lt;node&gt;...&lt;/node&gt;</TT> in the file is created using the <TT>mxmlNewElement</TT> and <A href="#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, &quot;node&quot;);    mxmlNewText(node, 0, &quot;val1&quot;);</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="#mxmlLoadFile"><TT>mxmlLoadFile</TT></A> function:</P><PRE>    FILE *fp;    mxml_node_t *tree;    fp = fopen(&quot;filename.xml&quot;, &quot;r&quot;);    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="#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"><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="#mxmlSaveFile"><TT>mxmlSaveFile</TT></A> function:</P><PRE>    FILE *fp;    mxml_node_t *tree;    fp = fopen(&quot;filename.xml&quot;, &quot;w&quot;);    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>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线播放/欧美激情| 日本最新不卡在线| 粉嫩久久99精品久久久久久夜| 色94色欧美sute亚洲线路二| 亚洲视频一区二区免费在线观看| 国产成人在线免费| 国产精品进线69影院| 福利一区二区在线| 亚洲国产日韩a在线播放性色| 99久久免费精品高清特色大片| 中文字幕乱码亚洲精品一区| 岛国一区二区在线观看| 国产精品情趣视频| 波多野结衣91| 麻豆一区二区99久久久久| 日韩一区欧美小说| 日韩一区二区在线免费观看| 国产黄色91视频| 免费视频最近日韩| 怡红院av一区二区三区| 中文字幕一区二区三区精华液| 9191精品国产综合久久久久久| 国产成人精品免费视频网站| 亚洲bt欧美bt精品| 国产日韩三级在线| 日韩免费高清电影| 色婷婷狠狠综合| 国产一区二区免费看| 亚洲欧洲日产国码二区| 色婷婷av一区二区三区之一色屋| 天堂资源在线中文精品| 欧美激情一区二区三区四区 | 欧美三级在线视频| 色欧美日韩亚洲| 一本久久综合亚洲鲁鲁五月天| 国产99精品国产| 国产99久久精品| 国产精品伊人色| 国产传媒欧美日韩成人| 国产剧情一区二区| 日本美女一区二区三区| 一区二区三区小说| 免费亚洲电影在线| 国产ts人妖一区二区| 欧美日韩中文字幕精品| 欧美变态tickle挠乳网站| 日韩视频在线你懂得| 国产精品卡一卡二卡三| 玉足女爽爽91| 国产精品白丝jk白祙喷水网站| 在线亚洲一区二区| 国产婷婷色一区二区三区四区| 亚洲免费观看视频| 久久国产麻豆精品| 99精品国产视频| 欧美不卡激情三级在线观看| 国产精品网站一区| 亚洲一二三四区| 国产乱子伦视频一区二区三区| 国产91精品一区二区麻豆网站 | 欧美视频日韩视频在线观看| 日韩亚洲欧美在线观看| 2021久久国产精品不只是精品| 亚洲一二三区在线观看| 一本色道综合亚洲| 国产精品美女久久久久av爽李琼 | 成人免费看的视频| 精品国产麻豆免费人成网站| 亚洲精品高清在线| 不卡电影一区二区三区| 日韩欧美一级在线播放| 亚洲男人的天堂在线aⅴ视频 | 欧美激情艳妇裸体舞| 激情综合色播激情啊| 91精品在线免费| 亚洲国产日韩av| 欧美性受极品xxxx喷水| 一区二区三区日韩欧美| 91在线观看免费视频| 自拍偷拍亚洲欧美日韩| 不卡一区二区三区四区| 一区二区三区在线观看国产| 欧美性猛交xxxx乱大交退制版| 亚洲免费在线观看视频| 这里只有精品99re| 青青草原综合久久大伊人精品优势| 欧美在线free| 麻豆精品久久精品色综合| 精品久久人人做人人爽| 日韩av网站免费在线| 欧美刺激午夜性久久久久久久| 国产91色综合久久免费分享| 国产精品久99| 欧美变态tickling挠脚心| 91久久久免费一区二区| 日韩在线观看一区二区| 国产精品日韩精品欧美在线| 欧美影院一区二区三区| 精品一区二区在线观看| 国产午夜一区二区三区| 欧美影院精品一区| 成人av在线电影| 精品一区二区精品| 久久精品国产99国产精品| 日韩精品91亚洲二区在线观看| 欧美精品一区二区高清在线观看| 色婷婷av一区二区三区gif | 色系网站成人免费| 成人av在线资源网站| 国产精品系列在线观看| 国产另类ts人妖一区二区| 蜜臀va亚洲va欧美va天堂| 亚洲欧洲在线观看av| 久久久天堂av| 精品久久久久久久久久久院品网 | 日韩精品91亚洲二区在线观看| 国产精品久久久久久久久晋中 | 性做久久久久久免费观看| 亚洲美女免费在线| 国产精品二三区| 欧美国产精品久久| 中文av一区二区| 国产精品嫩草影院av蜜臀| 欧美日韩大陆一区二区| 日韩免费性生活视频播放| 久久综合九色综合97婷婷| 精品国产一区久久| 欧美精品一区二区三区很污很色的| 欧美日韩激情一区| 精品欧美一区二区久久| 国产欧美日韩精品一区| 综合电影一区二区三区| 亚洲国产婷婷综合在线精品| 视频一区二区欧美| 国产精品亚洲а∨天堂免在线| 97久久精品人人爽人人爽蜜臀| 91蜜桃免费观看视频| 日韩一级片网站| 亚洲色图欧美激情| 天天影视涩香欲综合网| 国内外成人在线视频| 色综合色综合色综合色综合色综合| 99国产精品久久久久久久久久| 3atv在线一区二区三区| 中文字幕精品一区二区三区精品| 1区2区3区精品视频| 亚洲一区二区美女| 91社区在线播放| 欧美丝袜丝交足nylons| 99精品偷自拍| 波多野结衣精品在线| 99精品偷自拍| 欧美日韩极品在线观看一区| 欧美一区二区视频在线观看2020 | 懂色av中文一区二区三区| 99免费精品视频| 欧美剧情片在线观看| 国产网站一区二区三区| 亚洲国产精品人人做人人爽| 国产精品一二三区| 91精品久久久久久蜜臀| 国产精品三级久久久久三级| 爽好久久久欧美精品| 99精品在线观看视频| 欧美电视剧免费观看| 亚洲一区免费视频| 国产精品18久久久久久久久久久久| 91天堂素人约啪| 国产亚洲午夜高清国产拍精品 | 一本一道综合狠狠老| 欧美大片国产精品| 亚洲国产一二三| 99久久综合狠狠综合久久| 日韩欧美国产一二三区| 亚洲主播在线播放| 成人高清免费观看| 日韩欧美中文字幕公布| 亚洲一区二区三区不卡国产欧美| 国产精品一区在线观看乱码 | 久久精品男人的天堂| 日韩专区中文字幕一区二区| 91丝袜呻吟高潮美腿白嫩在线观看| 精品国产露脸精彩对白| 亚洲成人综合在线| 色播五月激情综合网| 国产精品成人一区二区三区夜夜夜| 日本 国产 欧美色综合| 欧美日韩一级片网站| 亚洲日本va午夜在线影院| 成人性生交大片免费| 久久久www免费人成精品| 国产精品自拍网站| 久久伊99综合婷婷久久伊| 久久精品国产999大香线蕉| 欧美一区二区精美| 蜜臂av日日欢夜夜爽一区| 日韩一区二区三区四区| 免费观看在线综合| 日韩亚洲欧美成人一区| 免费看欧美女人艹b|