




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
B. 示例文档 John Fleck June 2, 2002 example keyword This is the headline This is the body text. C. Keyword例程代码 #include #include #include #include #include void parseStory (xmlDocPtr doc, xmlNodePtr cur) xmlChar *key; cur = cur-xmlChildrenNode; while (cur != NULL) if (!xmlStrcmp(cur-name, (const xmlChar *)keyword) key = xmlNodeListGetString(doc, cur-xmlChildrenNode, 1); printf(keyword: %sn, key); xmlFree(key); cur = cur-next; return; static void parseDoc(char *docname) xmlDocPtr doc; xmlNodePtr cur; doc = xmlParseFile(docname); if (doc = NULL ) fprintf(stderr,Document not parsed successfully. n); return; cur = xmlDocGetRootElement(doc); if (cur = NULL) fprintf(stderr,empty documentn); xmlFreeDoc(doc); return; if (xmlStrcmp(cur-name, (const xmlChar *) story) fprintf(stderr,document of the wrong type, root node != story); xmlFreeDoc(doc); return; cur = cur-xmlChildrenNode; while (cur != NULL) if (!xmlStrcmp(cur-name, (const xmlChar *)storyinfo) parseStory (doc, cur); cur = cur-next; xmlFreeDoc(doc); return; int main(int argc, char *argv) char *docname; if (argc = 1) printf(Usage: %s docnamen, argv0); return(0); docname = argv1; parseDoc (docname); return (1); libxml(三) D. XPath例程代码 #include #include #include xmlDocPtr getdoc (char *docname) xmlDocPtr doc; doc = xmlParseFile(docname); if (doc = NULL ) fprintf(stderr,Document not parsed successfully. n); return NULL; return doc; xmlXPathObjectPtr getnodeset (xmlDocPtr doc, xmlChar *xpath) xmlXPathContextPtr context; xmlXPathObjectPtr result; context = xmlXPathNewContext(doc); result = xmlXPathEvalExpression(xpath, context); if(xmlXPathNodeSetIsEmpty(result-nodesetval) printf(No resultn); return NULL; xmlXPathFreeContext(context); return result; int main(int argc, char *argv) char *docname; xmlDocPtr doc; xmlChar *xpath = (xmlChar*)/keyword; xmlNodeSetPtr nodeset; xmlXPathObjectPtr result; int i; xmlChar *keyword; if (argc nodesetval; for (i=0; i nodeNr; i+) /keyword=(xmlChar*)0; keyword = xmlNodeListGetString(doc, nodeset-nodeTabi-xmlChildrenNode, printf(keyword: %sn, keyword); xmlFree(keyword); xmlXPathFreeObject (result); xmlFreeDoc(doc); xmlCleanupParser(); return (1); E. 添加keyword例程代码 #include #include #include #include #include void parseStory (xmlDocPtr doc, xmlNodePtr cur, char *keyword) xmlNewTextChild (cur, NULL, keyword, keyword); return; xmlDocPtr parseDoc(char *docname, char *keyword) xmlDocPtr doc; xmlNodePtr cur; doc = xmlParseFile(docname); if (doc = NULL ) fprintf(stderr,Document not parsed successfully. n); return (NULL); cur = xmlDocGetRootElement(doc); if (cur = NULL) fprintf(stderr,empty documentn); xmlFreeDoc(doc); return (NULL); if (xmlStrcmp(cur-name, (const xmlChar *) story) fprintf(stderr,document of the wrong type, root node != story); xmlFreeDoc(doc); return (NULL); cur = cur-xmlChildrenNode; while (cur != NULL) if (!xmlStrcmp(cur-name, (const xmlChar *)storyinfo) parseStory (doc, cur, keyword); cur = cur-next; return(doc); int main(int argc, char *argv) char *docname; char *keyword; xmlDocPtr doc; if (argc = 2) printf(Usage: %s docname, keywordn, argv0); return(0); docname = argv1; keyword = argv2; doc = parseDoc (docname, keyword); if (doc != NULL) xmlSaveFormatFile (docname, doc, 0); xmlFreeDoc(doc); return (1); F. 添加属性例程代码 #include #include #include #include #include xmlDocPtr parseDoc(char *docname, char *uri) xmlDocPtr doc; xmlNodePtr cur; xmlNodePtr newnode; xmlAttrPtr newattr; doc = xmlParseFile(docname); if (doc = NULL ) fprintf(stderr,Document not parsed successfully. n); return (NULL); cur = xmlDocGetRootElement(doc); if (cur = NULL) fprintf(stderr,empty documentn); xmlFreeDoc(doc); return (NULL); if (xmlStrcmp(cur-name, (const xmlChar *) story) fprintf(stderr,document of the wrong type, root node != story); xmlFreeDoc(doc); return (NULL); newnode = xmlNewTextChild (cur, NULL, reference, NULL); newattr = xmlNewProp (newnode, uri, uri); return(doc); int main(int argc, char *argv) char *docname; char *uri; xmlDocPtr doc; if (argc = 2) printf(Usage: %s docname, urin, argv0); return(0); docname = argv1; uri = argv2; doc = parseDoc (docname, uri); if (doc != NULL) xmlSaveFormatFile (docname, doc, 1); xmlFreeDoc(doc); return (1); G. 取得属性值例程代码 #include #include #include #include #include void getReference (xmlDocPtr doc, xmlNodePtr cur) xmlChar *uri; cur = cur-xmlChildrenNode; while (cur != NULL) if (!xmlStrcmp(cur-name, (const xmlChar *)storyinfo) uri = xmlGetProp(cur, uri); printf(uri: %sn, uri); xmlFree(uri); cur = cur-next; return; void parseDoc(char *docname) xmlDocPtr doc; xmlNodePtr cur; doc = xmlParseFile(docname); if (doc = NULL ) fprintf(stderr,Document not parsed successfully. n); return; cur = xmlDocGetRootElement(doc); if (cur = NULL) fprintf(stderr,empty documentn); xmlFreeDoc(doc); return; if (xmlStrcmp(cur-name, (const xmlChar *) story) fprintf(stderr,document of the wrong type, root node != story); xmlFreeDoc(doc); return; getReference (doc, cur); xmlFreeDoc(doc); return; int main(int argc, char *argv) char *docname; if (argc = 1) printf(Usage: %s docnamen, argv0); return(0); docname = argv1; parseDoc (docname); return (1); H. 编码转换例程代码 #include #include unsigned char* convert (unsigned char *in, char *encoding) unsigned char *out; int ret,size,out_size,temp; xmlCharEncodingHandlerPtr handler; size = (int)strlen(in)+1; out_size = size*2-1; out = malloc(size_t)out_size); if (out) handler = xmlFindCharEncodingHandler(encoding); if (!handler) free(out); out = NULL; if (out) temp=size-1; ret = handler-input(out, &out_size, in, &temp); if (ret | temp-size+1) if (ret) printf(conversion wasnt successful.n); else printf(conversion wasnt successful. converted: free(out); out = NULL; else out = realloc(out,out_size+1); outout_size=0; /*null terminating out*/ else printf(no memn); return (out); int main(int argc, char *argv) unsigned char *content, *out; xmlDocPtr doc; xmlNodePtr rootnode; char *encoding = ISO-8859-1; if (argc = 1) printf(U
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生心理健康教育 课件 第八章大学生压力管理与挫折应对
- 应急和安全知识培训课件
- 黑龙江省安达市中考物理通关考试题库【黄金题型】附答案详解
- 蒙脱石散治疗秋季腹泻作用机制与使用规范
- 数字系统设计与VHDL(第3版)教案全套 1-12 -第1章 EDA技术概述 - 第12章 VHDL设计实例
- 2024自考专业(电子商务)常考点试卷含答案详解(巩固)
- 机构入学合同(标准版)
- 做微商如何与客户有效沟通(35篇)
- 信息系统的应急预案
- 2025年生态旅游可持续发展规划与管理中的旅游可持续发展规划实施效果评估报告
- 架空架空绝缘电线长度换算重量表
- GB/T 14662-2006冲模技术条件
- GB 31644-2018食品安全国家标准复合调味料
- 第三章-经济性评价的指标和方法课件
- Unit 1 Reading B A letter to my daughte课件-高中英语上教版(2020)必修第一册
- 电力建设工程安全健康与环境管理办法
- 节能减排课件
- 掌骨骨折查房课件
- 航运管理实务整套课件汇总完整版电子教案(全)
- 国际商法完整ppt课件全套教学ppt教程
- 小箱梁运输及架设施工危险源辨识及分析
评论
0/150
提交评论