ape.html revision 38ae7e4efe803ea78b6499cd05a394db32623e41
48c0c81cd6fabac9d3386406d97633780365b839coar<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>E.�Code for Add Keyword Example</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"><link rel="home" href="index.html" title="Libxml Tutorial"><link rel="up" href="index.html" title="Libxml Tutorial"><link rel="previous" href="apd.html" title="D.�Code for XPath Example"><link rel="next" href="apf.html" title="F.�Code for Add Attribute Example"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">E.�Code for Add Keyword Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apd.html">Prev</a>�</td><th width="60%" align="center">�</th><td width="20%" align="right">�<a accesskey="n" href="apf.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="addkeywordappendix"></a>E.�Code for Add Keyword Example</h2></div></div><div></div></div><p>
a8dda281113c5038945423320d8c9b42e3d1ddb1jwoolley </p><pre class="programlisting">
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#include &lt;stdio.h&gt;
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#include &lt;string.h&gt;
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj#include &lt;stdlib.h&gt;
a8dda281113c5038945423320d8c9b42e3d1ddb1jwoolley#include &lt;libxml/xmlmemory.h&gt;
bf3d1782a29630335a1df535eb395355ab1cd154jwoolley#include &lt;libxml/parser.h&gt;
bf3d1782a29630335a1df535eb395355ab1cd154jwoolley
07847078a10fe4e9229cc08adda5f421cafc0665jwoolleyvoid
0bd0176ce9f4321eeb506aa372d0bcc84befbf4cstrikerparseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) {
d8028365066fca602bf35d014530a1802114378crbb
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe xmlNewTextChild (cur, NULL, "keyword", keyword);
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe return;
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe}
d89c116f82699294ca744125723651c554bc5925wrowe
4214e98fc9045e5010e66f9a967bd6d68f40d342aaronxmlDocPtr
8721697e2aece27b0e738519329f7976c72b27bfjerenkrantzparseDoc(char *docname, char *keyword) {
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz xmlDocPtr doc;
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz xmlNodePtr cur;
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbb
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbb doc = xmlParseFile(docname);
ab71b233b3a36489e44a7b061c48293be0b17788jwoolley
571760de5e60c0b459cb11be45507b923cd023eejwoolley if (doc == NULL ) {
571760de5e60c0b459cb11be45507b923cd023eejwoolley fprintf(stderr,"Document not parsed successfully. \n");
9180a5933673ffb1af633c255ceee029340f3b1erbb return (NULL);
bcb6e1be6041dfeb549c8ea8d37f97ad4e90a0c3rbb }
9bd71e35f5d26d26d23fe3a677401828e842ed72wrowe
2900ab946a2d76b73a14cebfe2985d253f01c967stoddard cur = xmlDocGetRootElement(doc);
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb if (cur == NULL) {
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb fprintf(stderr,"empty document\n");
b876b7bcf0ce3d232da723246d709e8dbbfe8762rbb xmlFreeDoc(doc);
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein return (NULL);
35330e0d79ceb8027223bbb8330a381b1f989d6etrawick }
6f6f4a4bca281779d196acbdd5c017bb90858305trawick
8dd4618c4709236b4ea297d7250d282e463ce2d8rbb if (xmlStrcmp(cur-&gt;name, (const xmlChar *) "story")) {
09bd86d0db1114ee23eda0a6eb76ca055877a1cftrawick fprintf(stderr,"document of the wrong type, root node != story");
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb xmlFreeDoc(doc);
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb return (NULL);
70f6f32765cfaadd6da8de6f0fea97ddd72d8fadmanoj }
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj
af4c982a7cf4515f124935f99a329744035fc699slive cur = cur-&gt;xmlChildrenNode;
af4c982a7cf4515f124935f99a329744035fc699slive while (cur != NULL) {
af4c982a7cf4515f124935f99a329744035fc699slive if ((!xmlStrcmp(cur-&gt;name, (const xmlChar *)"storyinfo"))){
af4c982a7cf4515f124935f99a329744035fc699slive parseStory (doc, cur, keyword);
af4c982a7cf4515f124935f99a329744035fc699slive }
af4c982a7cf4515f124935f99a329744035fc699slive
af4c982a7cf4515f124935f99a329744035fc699slive cur = cur-&gt;next;
10270f6f94b2069d0d357805c140a9897449b9ccianh }
4b62424416882687387923b3130b96241503cbe0jerenkrantz return(doc);
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz}
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz
45b0e1c775c1cfed6473c9e5304179ccb9609f53stoddardint
dbec4658981e4f9127e8676457c28d42932be7cdtrawickmain(int argc, char **argv) {
1b7e9aeb9867a1c94e24e8ae491d2dfcd0d225e3jerenkrantz
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz char *docname;
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz char *keyword;
f17588e04d2412bf1345783ed1d173322d728d6ftrawick xmlDocPtr doc;
f17588e04d2412bf1345783ed1d173322d728d6ftrawick
f17588e04d2412bf1345783ed1d173322d728d6ftrawick if (argc &lt;= 2) {
f17588e04d2412bf1345783ed1d173322d728d6ftrawick printf("Usage: %s docname, keyword\n", argv[0]);
f17588e04d2412bf1345783ed1d173322d728d6ftrawick return(0);
f17588e04d2412bf1345783ed1d173322d728d6ftrawick }
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz docname = argv[1];
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz keyword = argv[2];
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz doc = parseDoc (docname, keyword);
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe if (doc != NULL) {
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz xmlSaveFormatFile (docname, doc, 0);
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz xmlFreeDoc(doc);
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz }
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz return (1);
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz}
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz</pre><p>
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apd.html">Prev</a>�</td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right">�<a accesskey="n" href="apf.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">D.�Code for XPath Example�</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">�F.�Code for Add Attribute Example</td></tr></table></div></body></html>
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz