xml简单介绍及libmxml编程

 

今天我们来简单介绍一下,关于xml的一些内容,包括自己编写一些程序进行生成和解析。

首先我们我们还是从xml的演化历史来了解一下它吧。

历史演化

  GML:

     在20世纪60年代为了促进数据交换和操作,通过IBM公司研究人员的杰出工作,得出了重要的结论:要提高系统的移植性,必须采用一种通用的文档格式,这种文档的格式必须遵守特定的规则。这也就是创建通用标记语言(外语全称:Generalized Markup Language、外语缩写:GML)的指导原则,从人们所产生的将文件结构化为标准的格式的动机出发,IBM创建了GML。GML是一种IBM格式化文档语言,用于就其组织结构、各部件及其之间的关系进行文档描述。GML将这些描述标记为章节、重要小节和次重要小节(通过标题的级来区分)、段落、列表、表等。GML在文档具体格式方面,为文档员提供了一些方便,他们不必再为IBM得打印机格式化语言SCRIPT要求的字体规范、行距以及页面设计等浪费精力。GML是标准通用标记语言的先驱和基础,SGML是当今创建结构化文档描述语言规则的战略集合。很多网页是用HTML标记表示出的,就是使用GML概念创建文档的例子。扩展标志语言(XML)也根源于GML。
  SGML

      它源于1969年IBM公司开发的文档描述语言GML,GML主要用来解决不同系统中文档格式不同的问题。后经过多年发展,1986年经ISO批准为国际标准ISO8897,并被称为SGML。制定SGML的基本思想是把文档的内容与样式分开。在SGML中,标记分两种:一种用来描述文档显示的样式,称为程序标记;另一种用来描述文档中语句的用途,称为描述标记。一个SGML文件通常分三个层次:结构、内容和样式。结构为组织文档的元素提供框架,内容是信息本身,样式控制内容的显示。SGML的平台无关性、结构化、可扩展等特性,使得它使用范围很广,被许多大型公司开始用来创建和发布信息。

  HTML

      超文本标记语言(HTML)起源于标准通用标记语言(SGML),由世界上最大的粒子物理研究实验室欧洲核子研究中心CERN(the European Organization for Nuclear Research)于1991年首先提出,是推动Web迅速发展的原动力。在互联网发展的早期,为了在各种网络环境之间、不同文件格式之间进行交流,在SGML基础上,CERN提出了超文本标记语言(Hyper Text Markup Language,HTML)的概念。HTML是一种用来制作超文本文档的简单标记语言,它定义了一组标记符号(tag),对文件的内容进行标注,指出内容的输出格式,如字体大小、颜色、背景颜色、表格形式、各部分之间逻辑上的组织等,从而实现了文件格式的标准化。简单地说,HTMI。文件包含了文档数据和显示样式两部分,其中文档数据是显示在Web浏览器中的数据内容,显示样式则规定了这些内容在浏览器中以何种格式、样子呈现给用户。通过统一使用支持HTMI。的浏览
软件,用户可以在任意异构的网络环境中阅读同一个文件,得到相同的显示结果,并可以对文件进行跳跃式阅读,展现了很强的表现力。

  XML:

     XML是由互联网联盟(World Wide Web Consortium,W3C)的XML工作组定义的。 “扩展标记语言(XML)是SGML的子集,其目标是允许普通的SGML在Web上以目前HTML的方式被服务、接收和处理。XML被设计成易于实现,且可在SGML和HTML之间互相操作。” HTML的出现极大地推动了世界范围内的互联网的发展,万维网就是一个主要成果。然而,HTML在某些方面是一种通用编码的倒退。 第一,HTML为了获得精简编码方式的有效性,而抛弃了通用编码的一些基本原则。例如,通用编码要求一个文档类型能用于任何目的,要求用户编码时应重载标签而不是重新定义特殊目的的标签。
  XML特点和作用 :
      XML 指可扩展标识语言( eXtensible Markup Language
      XML 的设计宗旨是传输数据, 而非显示数据
      XML 标签没有被预定义。 您需要自行定义标签。
      作为一种通用的数据存储和通信格式被广泛应用。
      描述的数据作为一棵树型的结构而存在。

第一个简单的xml文件 :   

1 xml version="1.0" encoding="utf-8"?>
2 <note>
3 <to>Toveto>
4 <from>Janifrom>
5 <heading>Reminderheading>
6 <body>Don't forget me this weekend!body>
7 note>

规则说明:它定义 XML 的版本(1.0)和所使用的编码 UTF-8,version不可省略,encoding可以省略;

    描述文档的根元素,有且只有一个根元素。

    所有 XML 元素都须有关闭标签

    XML标签对大小写敏感。

XML元素 :

    XML元素指的是开始标签直到结束标签的部分,可以包含文本、属性、其他元素 中的一种或者多种。 比如下面这个xml文件

 1 xml version="1.0" encoding="utf-8"?>
 2 <bookstore><bookstore>
 3 <book category="CHILDREN">
 4 <title>Harry Pottertitle>
 5 <author>J K. Rowlingauthor>
 6 <year>2005year>
 7 <price>29.99price>
 8 book>
 9 <book category="WEB">
10 <title>Learning XMLtitle>
11 <author>Erik T. Rayauthor>
12 <year>2003year>
13 <price>39.95price>
14 book>
15 bookstore>

上面的示例中 都有元素内容 因为他们包含其他元素。 元素也有属性category="WEB" <author> <year> <price><span class="fontstyle0">有文本内容。</span></span></span></span></span></span></span></span></span></p> <hr> <p><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"> 下面正式介绍在linux下安装以及代码实现(我们下面介绍的<span class="fontstyle0">依赖<span class="fontstyle1">XML<span class="fontstyle0">解析库是<span class="fontstyle1">minixml</span></span></span></span>),首先下载mxml的压缩包,并进行解压,解压后进入目录执行如图所示命令进行编译,编译后我们进行代码测试需要的三个文件分别是 libmxml.a mxml.h config.h,将其拷贝到代码编写目录。<br></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0">附mxml解析库下载地址:<span class="fontstyle0">http://www.msweet.org/downloads.php?L+Z3 </span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><a href="http://img.e-com-net.com/image/info8/2385cd4fdf064f288df56c5d64bef431.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/2385cd4fdf064f288df56c5d64bef431.png" alt="xml简单介绍及libmxml编程_第1张图片" width="672" height="301" style="border:1px solid black;"></a></span></span></span></span></span></span></span></span></span></p> <p> </p> <p>我们还是从mxml的函数开始介绍,才能事半功倍</p> <p><span class="fontstyle0">minixml常用函数接口:</span></p> <p><span class="fontstyle0">  <span class="fontstyle0">均需要包含头文件 <span class="fontstyle0">#include <mxml.h> <br></span>  <span class="fontstyle0"><br></span>    <span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0">创建一个新xml文件 </span></span></span>:mxml_node_t *mxmlNewXML(const char *version);<br><span class="fontstyle0">        参数<span class="fontstyle1">1:version<span class="fontstyle0">默认传入<span class="fontstyle1">"1.0"<span class="fontstyle0">即可<br>        返回值<span class="fontstyle1">:<span class="fontstyle0">返回新创建的<span class="fontstyle1">xml<span class="fontstyle0">文件节点<br>        提示: 虽然<span class="fontstyle1">xml<span class="fontstyle0">中可以指定字符编码, 但是在<span class="fontstyle1">mxml<span class="fontstyle0">中默认的编码就是<span class="fontstyle1">UTF8<span class="fontstyle0">编码。 </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><br></span>     <span class="fontstyle0">其中一个节点新增节点 :<span class="fontstyle0">mxml_node_t *mxmlNewElement(mxml_node_t *parent, const char *name); <br></span>        <span class="fontstyle0">参数<span class="fontstyle1">1:<span class="fontstyle0">父节点指针<br>        参数<span class="fontstyle1">2:<span class="fontstyle0">新节点名称<br>        返回值<span class="fontstyle1">:<span class="fontstyle0">返回新创建的子节点 </span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0">    设置节点属性名和值 :void mxmlElementSetAttr(mxml_node_t *node, const char *name,const char *value);<br></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0">        <span class="fontstyle0">参数<span class="fontstyle1">1:<span class="fontstyle0">被设置的节点的地址<br>        参数<span class="fontstyle1">2:<span class="fontstyle0">设置的属性名<br>        参数<span class="fontstyle1">3:<span class="fontstyle0">设置的属性值 <br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0">    <span class="fontstyle0">创建结点的文本 :mxml_node_t *mxmlNewText ( mxml_node_t *parent, int whitespace, const char*string);<br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0">        参数1: 被设置的结点的地址<br>        参数2: 1 = leading whitespace, 0 = no whitespace<br>        参数3: 文本</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0">    <span class="fontstyle0">保存节点到xml文件 :<span class="fontstyle0">int mxmlSaveFile(mxml_node_t *node, FILE *fp,mxml_save_cb_t cb); <br></span>        参数1:node表示希望被保存的xml节点树的根节点, 指向xml结构的节点指针<br>        参数2:fp为C中使用fopen函数打开文件所返回的FILE类型的指针<br>        参数3:默认情况下使用MXML_NO_CALLBACK即可<br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0">    <span class="fontstyle0">删除节点内存 :<span class="fontstyle0">mxmlDelete(mxml_node_t *node); <br></span>        <span class="fontstyle0">参数<span class="fontstyle1">1:node<span class="fontstyle0">为指向节点树的指针。<br>        该函数将释放<span class="fontstyle1">node<span class="fontstyle0">节点指针所指向的整棵节点树, 而不用我们去一个一个节点释放。 如果该节点还有父节点, 会从节点树中先使用<span class="fontstyle1">mxmlRemove()<span class="fontstyle0">移除该节点。</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><br></span>    <span class="fontstyle0">从文件中加载xml :mxml_node_t *mxmlLoadFile(mxml_node_t *top, FILE *fp,mxml_type_t (*cb)(mxml_node_t *));<br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0">        参数1:top为加载的节点的父节点 如果是文档节点则填NULL即可<br>        参数2:fopen函数返回的文件的指针<br>        参数3:默认情况下使用MXML_NO_CALLBACK即可</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0">    <span class="fontstyle0">获取节点属性 :<span class="fontstyle0">const char *mxmlElementGetAttr(mxml_node_t *node, const char *name); <br></span>        <span class="fontstyle0">参数<span class="fontstyle1">1:node<span class="fontstyle0">为指向结点树的指针<br>        参数<span class="fontstyle1">2:name<span class="fontstyle0">为获取的属性名<br>        返回值<span class="fontstyle1">:<span class="fontstyle0">指定属性名的属性</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0">    <span class="fontstyle0">获取指定节点的文本内容: <span class="fontstyle0">const char *mxmlGetText(mxml_node_t *node, int *whitespace); <br></span>    <span class="fontstyle0">跳转到下一个节点 :mxml_node_t *mxmlWalkNext(mxml_node_t *node, mxml_node_t *top,int descend);</span><br></span>         </span></span></span></span></span></span></span></span>遍历到XML树中的下一个逻辑节点。<br>        node 当前节点<br>        top 顶级节点<br>        descend参数有三个备选项<br>        MXML_NO_DESCEND含义是不查看任何的子节点在XML元素层次中, 仅查看同层级的节点或者父节点直到到达根节点或者top节点.<br>        MXML_DESCEND_FIRST含义是向下搜索到一个节点的第一个匹配子节点, 但不再继续向下搜索。 你一般使用于遍历一个父节点的直接的子节点。<br>        MXML_DESCEND含义是可以一直向下搜索.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0">    <span class="fontstyle0">查找节点 :mxml_node_t *mxmlFindElement(mxml_node_t *node, mxml_node_t *top,const char *name, const char *attr,const char *value, int descend);<br></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0">        <span class="fontstyle0">node<span class="fontstyle1">节点为被查找的结点<br><span class="fontstyle0">        top<span class="fontstyle1">为顶层结点<br><span class="fontstyle0">        name<span class="fontstyle1">, <span class="fontstyle0">attrr<span class="fontstyle1">, <span class="fontstyle0">value<span class="fontstyle1">为<span class="fontstyle0">NULL<span class="fontstyle1">时表示任意匹配; 否则为精确匹配。<br><span class="fontstyle0">        descend<span class="fontstyle1">同上个接口使用方式。</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1">介绍了那么多了,下面终于要进入到具体的代码编程实现当中了</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1">首先我们实现一个生成一个简单的xml文件的功能,代码1如下:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> #include<span style="color:#800000;">"</span><span style="color:#800000;">mxml.h</span><span style="color:#800000;">"</span> <span style="color:#008080;"> 2</span> <span style="color:#008080;"> 3</span> <span style="color:#0000ff;">int</span><span style="color:#000000;"> main() </span><span style="color:#008080;"> 4</span> <span style="color:#000000;">{ </span><span style="color:#008080;"> 5</span> <span style="color:#008000;">//</span><span style="color:#008000;">创建一个xml文件</span> <span style="color:#008080;"> 6</span> mxml_node_t *xml = mxmlNewXML(<span style="color:#800000;">"</span><span style="color:#800000;">1.0</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;"> 7</span> <span style="color:#008000;">//</span><span style="color:#008000;">新增一个节点html</span> <span style="color:#008080;"> 8</span> mxml_node_t *html = mxmlNewElement(xml,<span style="color:#800000;">"</span><span style="color:#800000;">html</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;"> 9</span> <span style="color:#008000;">//</span><span style="color:#008000;">在html节点下新增一个head节点</span> <span style="color:#008080;">10</span> mxml_node_t *head = mxmlNewElement(html,<span style="color:#800000;">"</span><span style="color:#800000;">head</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">11</span> <span style="color:#008000;">//</span><span style="color:#008000;">在head节点下新增一个title节点</span> <span style="color:#008080;">12</span> mxml_node_t *title = mxmlNewElement(head,<span style="color:#800000;">"</span><span style="color:#800000;">title</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">13</span> <span style="color:#008000;">//</span><span style="color:#008000;">title节点添加内容"Docment"</span> <span style="color:#008080;">14</span> mxmlNewText(title,<span style="color:#800080;">0</span>,<span style="color:#800000;">"</span><span style="color:#800000;">Docment</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">15</span> <span style="color:#008080;">16</span> <span style="color:#008000;">//</span><span style="color:#008000;">在html节点下新增body节点</span> <span style="color:#008080;">17</span> mxml_node_t *body = mxmlNewElement(html,<span style="color:#800000;">"</span><span style="color:#800000;">body</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">18</span> <span style="color:#008000;">//</span><span style="color:#008000;">在body节点下新增p节点</span> <span style="color:#008080;">19</span> mxml_node_t *p = mxmlNewElement(body,<span style="color:#800000;">"</span><span style="color:#800000;">p</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">20</span> <span style="color:#008000;">//</span><span style="color:#008000;">给p节点增加属性style,属性内容为 color:red</span> <span style="color:#008080;">21</span> mxmlElementSetAttr(p,<span style="color:#800000;">"</span><span style="color:#800000;">style</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">color:red</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">22</span> <span style="color:#008000;">//</span><span style="color:#008000;">给p节点增加内容 Helloworld.cpp</span> <span style="color:#008080;">23</span> mxmlNewText(p,<span style="color:#800080;">0</span>,<span style="color:#800000;">"</span><span style="color:#800000;">Helloworld.cpp</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">24</span> <span style="color:#008080;">25</span> <span style="color:#008000;">//</span><span style="color:#008000;">打开文件index.xml</span> <span style="color:#008080;">26</span> FILE *fp = fopen(<span style="color:#800000;">"</span><span style="color:#800000;">index.xml</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">wb</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">27</span> <span style="color:#008000;">//</span><span style="color:#008000;">保存节点到xml文件</span> <span style="color:#008080;">28</span> <span style="color:#000000;"> mxmlSaveFile(xml,fp,MXML_NO_CALLBACK); </span><span style="color:#008080;">29</span> <span style="color:#000000;"> fclose(fp); </span><span style="color:#008080;">30</span> <span style="color:#008000;">//</span><span style="color:#008000;">删除节点内存</span> <span style="color:#008080;">31</span> <span style="color:#000000;"> mxmlDelete(xml); </span><span style="color:#008080;">32</span> <span style="color:#0000ff;">return</span> <span style="color:#800080;">0</span><span style="color:#000000;">; </span><span style="color:#008080;">33</span> }</pre> </div> <p>首先执行如上图所示命令进行编译,生成可执行程序,然后执行程序,看到生成index.xml文件,vim打开查看该xml文件</p> <p><a href="http://img.e-com-net.com/image/info8/925e74f4e14e48d28b9500d9a819aad3.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/925e74f4e14e48d28b9500d9a819aad3.png" alt="xml简单介绍及libmxml编程_第2张图片" width="799" height="441" style="border:1px solid black;"></a></p> <p><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1"><span class="fontstyle0"><span class="fontstyle1">下面我们实现一个生成另一个xml文件的功能,代码2如下:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> #include<stdio.h> <span style="color:#008080;"> 2</span> #include<span style="color:#800000;">"</span><span style="color:#800000;">mxml.h</span><span style="color:#800000;">"</span> <span style="color:#008080;"> 3</span> <span style="color:#008080;"> 4</span> <span style="color:#0000ff;">int</span> main(<span style="color:#0000ff;">void</span><span style="color:#000000;">) </span><span style="color:#008080;"> 5</span> <span style="color:#000000;">{ </span><span style="color:#008080;"> 6</span> FILE *fp = fopen(<span style="color:#800000;">"</span><span style="color:#800000;">new.xml</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">w</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;"> 7</span> <span style="color:#008080;"> 8</span> <span style="color:#008000;">//</span><span style="color:#008000;">生成xml文件的头 <?xml version="1.0" encoding="utf-8"?></span> <span style="color:#008080;"> 9</span> mxml_node_t *xml = mxmlNewXML(<span style="color:#800000;">"</span><span style="color:#800000;">1.0</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">10</span> <span style="color:#008000;">//</span><span style="color:#008000;">添加一个新节点note</span> <span style="color:#008080;">11</span> mxml_node_t *note = mxmlNewElement(xml,<span style="color:#800000;">"</span><span style="color:#800000;">note</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">12</span> <span style="color:#008000;">//</span><span style="color:#008000;">往note节点添加子节点to</span> <span style="color:#008080;">13</span> mxml_node_t *to = mxmlNewElement(note,<span style="color:#800000;">"</span><span style="color:#800000;">to</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">14</span> <span style="color:#008000;">//</span><span style="color:#008000;">给to节点添加文本内容</span> <span style="color:#008080;">15</span> mxmlNewText(to,<span style="color:#800080;">0</span>,<span style="color:#800000;">"</span><span style="color:#800000;">科比</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">16</span> <span style="color:#008000;">//</span><span style="color:#008000;">给to节点设置属性 time 属性内容为 1115</span> <span style="color:#008080;">17</span> mxmlElementSetAttr(to,<span style="color:#800000;">"</span><span style="color:#800000;">time</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">1115</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">18</span> <span style="color:#008080;">19</span> <span style="color:#008000;">//</span><span style="color:#008000;">给note节点添加子节点from</span> <span style="color:#008080;">20</span> mxml_node_t *<span style="color:#0000ff;">from</span> = mxmlNewElement(note,<span style="color:#800000;">"</span><span style="color:#800000;">from</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">21</span> <span style="color:#008000;">//</span><span style="color:#008000;">给from节点添加文本内容</span> <span style="color:#008080;">22</span> mxmlNewText(<span style="color:#0000ff;">from</span>,<span style="color:#800080;">0</span>,<span style="color:#800000;">"</span><span style="color:#800000;">瓦妮莎</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">23</span> <span style="color:#008000;">//</span><span style="color:#008000;">给note节点添加子节点heading</span> <span style="color:#008080;">24</span> mxml_node_t *heading = mxmlNewElement(note,<span style="color:#800000;">"</span><span style="color:#800000;">heading</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">25</span> <span style="color:#008000;">//</span><span style="color:#008000;">给heading节点添加文本内容</span> <span style="color:#008080;">26</span> mxmlNewText(heading,<span style="color:#800080;">0</span>,<span style="color:#800000;">"</span><span style="color:#800000;">Reminder</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">27</span> <span style="color:#008080;">28</span> <span style="color:#008000;">//</span><span style="color:#008000;">给note节点添加子节点body</span> <span style="color:#008080;">29</span> mxml_node_t *body = mxmlNewElement(note,<span style="color:#800000;">"</span><span style="color:#800000;">body</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">30</span> <span style="color:#008000;">//</span><span style="color:#008000;">给body节点添加文本内容</span> <span style="color:#008080;">31</span> mxmlNewText(body,<span style="color:#800080;">0</span>,<span style="color:#800000;">"</span><span style="color:#800000;">Don't froget NBA programe this weekend!</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">32</span> <span style="color:#008000;">//</span><span style="color:#008000;">保存节点内容</span> <span style="color:#008080;">33</span> <span style="color:#000000;"> mxmlSaveFile(xml,fp,MXML_NO_CALLBACK); </span><span style="color:#008080;">34</span> <span style="color:#008080;">35</span> <span style="color:#000000;"> fclose(fp); </span><span style="color:#008080;">36</span> <span style="color:#0000ff;">return</span> <span style="color:#800080;">0</span><span style="color:#000000;">; </span><span style="color:#008080;">37</span> }</pre> </div> <p>使用下面的命令进行编译,生成可执行程序,然后执行程序,生成xml文件,可以用vim打开查看</p> <p><a href="http://img.e-com-net.com/image/info8/1c55baeb387845778cd3f44b3fe72b76.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/1c55baeb387845778cd3f44b3fe72b76.png" alt="xml简单介绍及libmxml编程_第3张图片" width="699" height="412" style="border:1px solid black;"></a></p> <p> 前面两个都是介绍生成xml文件的案例,下面我们看几个解析已知的xml文件的例子</p> <p>解析已有的xml文件,提取出信息代码3:</p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> #include<stdio.h> <span style="color:#008080;"> 2</span> #include<span style="color:#800000;">"</span><span style="color:#800000;">mxml.h</span><span style="color:#800000;">"</span> <span style="color:#008080;"> 3</span> <span style="color:#008080;"> 4</span> <span style="color:#0000ff;">int</span> main(<span style="color:#0000ff;">void</span><span style="color:#000000;">) </span><span style="color:#008080;"> 5</span> <span style="color:#000000;">{ </span><span style="color:#008080;"> 6</span> FILE* fp = fopen(<span style="color:#800000;">"</span><span style="color:#800000;">prac.xml</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">r</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;"> 7</span> <span style="color:#008000;">//</span><span style="color:#008000;">从prac.xml文件中加载xml</span> <span style="color:#008080;"> 8</span> mxml_node_t *xml =<span style="color:#000000;"> mxmlLoadFile(NULL,fp,MXML_NO_CALLBACK); </span><span style="color:#008080;"> 9</span> <span style="color:#008000;">//</span><span style="color:#008000;">定义两个空节点</span> <span style="color:#008080;">10</span> mxml_node_t *book =<span style="color:#000000;"> NULL; </span><span style="color:#008080;">11</span> mxml_node_t *title =<span style="color:#000000;"> NULL; </span><span style="color:#008080;">12</span> <span style="color:#008000;">//</span><span style="color:#008000;">从xml开始向下查找 name=book attrr=category</span> <span style="color:#008080;">13</span> book = mxmlFindElement(xml,xml,<span style="color:#800000;">"</span><span style="color:#800000;">book</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">category</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,MXML_DESCEND); </span><span style="color:#008080;">14</span> <span style="color:#008080;">15</span> <span style="color:#0000ff;">while</span><span style="color:#000000;">(book) </span><span style="color:#008080;">16</span> <span style="color:#000000;"> { </span><span style="color:#008080;">17</span> <span style="color:#008000;">//</span><span style="color:#008000;">获取title子元素的文本 book元素的属性</span> <span style="color:#008080;">18</span> title = mxmlFindElement(book,xml,<span style="color:#800000;">"</span><span style="color:#800000;">title</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,NULL,MXML_DESCEND); </span><span style="color:#008080;">19</span> <span style="color:#0000ff;">if</span>(title ==<span style="color:#000000;"> NULL) </span><span style="color:#008080;">20</span> <span style="color:#000000;"> { </span><span style="color:#008080;">21</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">title not found\n</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">22</span> <span style="color:#0000ff;">continue</span><span style="color:#000000;">; </span><span style="color:#008080;">23</span> <span style="color:#000000;"> } </span><span style="color:#008080;">24</span> <span style="color:#0000ff;">else</span> <span style="color:#008080;">25</span> <span style="color:#000000;"> { </span><span style="color:#008080;">26</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">book'titele is %s\n</span><span style="color:#800000;">"</span><span style="color:#000000;">,mxmlGetText(title,NULL)); </span><span style="color:#008080;">27</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">book'category:%s\n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(book,<span style="color:#800000;">"</span><span style="color:#800000;">category</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">28</span> book = mxmlFindElement(title,xml,<span style="color:#800000;">"</span><span style="color:#800000;">book</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">category</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,MXML_DESCEND); </span><span style="color:#008080;">29</span> <span style="color:#000000;"> } </span><span style="color:#008080;">30</span> <span style="color:#000000;"> } </span><span style="color:#008080;">31</span> <span style="color:#000000;"> mxmlDelete(xml); </span><span style="color:#008080;">32</span> <span style="color:#000000;"> fclose(fp); </span><span style="color:#008080;">33</span> <span style="color:#0000ff;">return</span> <span style="color:#800080;">0</span><span style="color:#000000;">; </span><span style="color:#008080;">34</span> }</pre> </div> <p>已知的xml文件如下所示:</p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> <span style="color:#0000ff;"><?</span><span style="color:#ff00ff;">xml version="1.0" encoding="utf-8"</span><span style="color:#0000ff;">?></span> <span style="color:#008080;"> 2</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">bookstore</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 3</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">book </span><span style="color:#ff0000;">category</span><span style="color:#0000ff;">="CHILDREN"</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 4</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">title</span><span style="color:#0000ff;">></span>Harry.Potter<span style="color:#0000ff;"></</span><span style="color:#800000;">title</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 5</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">author</span><span style="color:#0000ff;">></span>JK.Rowling<span style="color:#0000ff;"></</span><span style="color:#800000;">author</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 6</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">year</span><span style="color:#0000ff;">></span>2005<span style="color:#0000ff;"></</span><span style="color:#800000;">year</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 7</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">price</span><span style="color:#0000ff;">></span>29.99<span style="color:#0000ff;"></</span><span style="color:#800000;">price</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 8</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">book</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 9</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">book </span><span style="color:#ff0000;">category</span><span style="color:#0000ff;">="WEB"</span><span style="color:#0000ff;">></span> <span style="color:#008080;">10</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">title</span><span style="color:#0000ff;">></span>LearningXML<span style="color:#0000ff;"></</span><span style="color:#800000;">title</span><span style="color:#0000ff;">></span> <span style="color:#008080;">11</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">author</span><span style="color:#0000ff;">></span>ErikT.Ray<span style="color:#0000ff;"></</span><span style="color:#800000;">author</span><span style="color:#0000ff;">></span> <span style="color:#008080;">12</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">year</span><span style="color:#0000ff;">></span>2003<span style="color:#0000ff;"></</span><span style="color:#800000;">year</span><span style="color:#0000ff;">></span> <span style="color:#008080;">13</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">price</span><span style="color:#0000ff;">></span>39.95<span style="color:#0000ff;"></</span><span style="color:#800000;">price</span><span style="color:#0000ff;">></span> <span style="color:#008080;">14</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">book</span><span style="color:#0000ff;">></span> <span style="color:#008080;">15</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">bookstore</span><span style="color:#0000ff;">></span></pre> </div> <p>执行如下命令进行编译,执行程序,即可看到解析出的xml信息</p> <p><a href="http://img.e-com-net.com/image/info8/84c06be355dd4816abece4b848030102.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/84c06be355dd4816abece4b848030102.png" alt="xml简单介绍及libmxml编程_第4张图片" width="740" height="267" style="border:1px solid black;"></a></p> <hr> <p> </p> <p>上面都是练手的,下面我们来点实际的,<span class="fontstyle0">解析一下QQ数据试试</span></p> <p><span class="fontstyle0">代码4如下:</span></p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> #include<stdio.h> <span style="color:#008080;"> 2</span> #include<span style="color:#800000;">"</span><span style="color:#800000;">mxml.h</span><span style="color:#800000;">"</span> <span style="color:#008080;"> 3</span> <span style="color:#008080;"> 4</span> <span style="color:#0000ff;">int</span> main(<span style="color:#0000ff;">void</span><span style="color:#000000;">) </span><span style="color:#008080;"> 5</span> <span style="color:#000000;">{ </span><span style="color:#008080;"> 6</span> FILE *fp = fopen(<span style="color:#800000;">"</span><span style="color:#800000;">QQ.xml</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">r</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;"> 7</span> <span style="color:#008000;">//</span><span style="color:#008000;">加载文件</span> <span style="color:#008080;"> 8</span> mxml_node_t *xml =<span style="color:#000000;"> mxmlLoadFile(NULL,fp,MXML_NO_CALLBACK); </span><span style="color:#008080;"> 9</span> <span style="color:#008000;">//</span><span style="color:#008000;">创建三个空节点</span> <span style="color:#008080;">10</span> mxml_node_t *pic =<span style="color:#000000;"> NULL; </span><span style="color:#008080;">11</span> mxml_node_t *resurl =<span style="color:#000000;"> NULL; </span><span style="color:#008080;">12</span> mxml_node_t *thumbnail =<span style="color:#000000;"> NULL; </span><span style="color:#008080;">13</span> <span style="color:#008000;">//</span><span style="color:#008000;">查找Pic元素</span> <span style="color:#008080;">14</span> pic = mxmlFindElement(xml,xml,<span style="color:#800000;">"</span><span style="color:#800000;">Pic</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,NULL,MXML_DESCEND); </span><span style="color:#008080;">15</span> <span style="color:#008080;">16</span> <span style="color:#0000ff;">while</span><span style="color:#000000;">(pic) </span><span style="color:#008080;">17</span> <span style="color:#000000;"> { </span><span style="color:#008080;">18</span> resurl = mxmlFindElement(pic,xml,<span style="color:#800000;">"</span><span style="color:#800000;">resurl</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">md5</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,MXML_DESCEND); </span><span style="color:#008080;">19</span> <span style="color:#0000ff;">if</span>(resurl ==<span style="color:#000000;"> NULL) </span><span style="color:#008080;">20</span> <span style="color:#000000;"> { </span><span style="color:#008080;">21</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">resurl == NULL</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">22</span> <span style="color:#000000;"> } </span><span style="color:#008080;">23</span> <span style="color:#0000ff;">else</span> <span style="color:#008080;">24</span> <span style="color:#000000;"> { </span><span style="color:#008080;">25</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">md5 == %s\n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(resurl,<span style="color:#800000;">"</span><span style="color:#800000;">md5</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">26</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">text:%s\n</span><span style="color:#800000;">"</span><span style="color:#000000;">,mxmlGetText(resurl,NULL)); </span><span style="color:#008080;">27</span> <span style="color:#000000;"> } </span><span style="color:#008080;">28</span> thumbnail = mxmlFindElement(pic,xml,<span style="color:#800000;">"</span><span style="color:#800000;">thumbnail</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">md5</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,MXML_DESCEND); </span><span style="color:#008080;">29</span> <span style="color:#0000ff;">if</span>(resurl ==<span style="color:#000000;"> NULL) </span><span style="color:#008080;">30</span> <span style="color:#000000;"> { </span><span style="color:#008080;">31</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">thumbnail == NULL</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;">32</span> <span style="color:#000000;"> } </span><span style="color:#008080;">33</span> <span style="color:#0000ff;">else</span> <span style="color:#008080;">34</span> <span style="color:#000000;"> { </span><span style="color:#008080;">35</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">md5 == %s\n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(thumbnail,<span style="color:#800000;">"</span><span style="color:#800000;">md5</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">36</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">text:%s\n</span><span style="color:#800000;">"</span><span style="color:#000000;">,mxmlGetText(thumbnail,NULL)); </span><span style="color:#008080;">37</span> <span style="color:#000000;"> } </span><span style="color:#008080;">38</span> pic = mxmlFindElement(pic,xml,<span style="color:#800000;">"</span><span style="color:#800000;">Pic</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,NULL,MXML_DESCEND); </span><span style="color:#008080;">39</span> <span style="color:#000000;"> } </span><span style="color:#008080;">40</span> <span style="color:#000000;"> mxmlDelete(xml); </span><span style="color:#008080;">41</span> <span style="color:#000000;"> fclose(fp); </span><span style="color:#008080;">42</span> <span style="color:#0000ff;">return</span> <span style="color:#800080;">0</span><span style="color:#000000;">; </span><span style="color:#008080;">43</span> }</pre> </div> <p>QQ数据的xml文件</p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> <span style="color:#0000ff;"><?</span><span style="color:#ff00ff;">xml version="1.0" encoding="utf-8"</span><span style="color:#0000ff;">?></span> <span style="color:#008080;"> 2</span> <span style="color:#008080;"> 3</span> <span style="color:#008000;"><!--</span><span style="color:#008000;">pkgName对应GetResourceRespInfo的strPkgName字段</span><span style="color:#008000;">--></span> <span style="color:#008080;"> 4</span> <span style="color:#008000;"><!--</span><span style="color:#008000;">version对应GetResourceRespInfo的uiNewVer字段</span><span style="color:#008000;">--></span> <span style="color:#008080;"> 5</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">PicArray </span><span style="color:#ff0000;">version</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> pkgName</span><span style="color:#0000ff;">="QQCHATPic_hdpi"</span> <span style="color:#0000ff;">></span> <span style="color:#008080;"> 6</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 7</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;"> 8</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg101_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_101_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 9</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">10</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_101"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_101..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">11</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">12</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">13</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">14</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg102_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_102_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">15</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">16</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_102"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_102..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">17</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">18</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">19</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">20</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg103_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_103_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">21</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">22</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_103"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_103..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">23</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">24</span> <span style="color:#008080;">25</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">26</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">27</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg104_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_104_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">28</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">29</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_104"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_104..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">30</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">31</span> <span style="color:#008080;">32</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">33</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">34</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg105_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_105_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">35</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">36</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_105"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_105..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">37</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">38</span> <span style="color:#008080;">39</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">40</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">41</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg106_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_106_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">42</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">43</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_106"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_106..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">44</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">45</span> <span style="color:#008080;">46</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">47</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">48</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg107_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_107_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">49</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">50</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_107"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_107..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">51</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">52</span> <span style="color:#008080;">53</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">54</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">55</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg108_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_108_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">56</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">57</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_108"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_108..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">58</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">59</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">60</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">61</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg109_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_109_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">62</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">63</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_109"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_109..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">64</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">65</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">66</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">67</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg1101_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_110_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">68</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">69</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_1101"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chat_bg_thumb_110..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">70</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">71</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">72</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 原图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">73</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">resurl </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg1112_hdpi"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/720V2/chat_bg_111_720.jpg<span style="color:#0000ff;"></</span><span style="color:#800000;">resurl</span><span style="color:#0000ff;">></span> <span style="color:#008080;">74</span> <span style="color:#008000;"><!--</span><span style="color:#008000;"> 缩略图地址</span><span style="color:#008000;">--></span> <span style="color:#008080;">75</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">thumbnail </span><span style="color:#ff0000;">md5 </span><span style="color:#0000ff;">= "qq2013_chatbg_thumb_1112"</span><span style="color:#0000ff;">></span>http://appimg1.3g.qq.com/msoft/mobileQQ_theme/new_background/thumb/chatbg_thumb_111..png<span style="color:#0000ff;"></</span><span style="color:#800000;">thumbnail</span><span style="color:#0000ff;">></span> <span style="color:#008080;">76</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">Pic</span><span style="color:#0000ff;">></span> <span style="color:#008080;">77</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">PicArray</span><span style="color:#0000ff;">></span></pre> </div> <p>编译程序,执行可执行程序,得到如下图所示结果:</p> <p><a href="http://img.e-com-net.com/image/info8/5c0e76b8a9df4d84b2cb0cf8ecb7b08f.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/5c0e76b8a9df4d84b2cb0cf8ecb7b08f.png" alt="xml简单介绍及libmxml编程_第5张图片" width="950" height="886" style="border:1px solid black;"></a></p> <p>下面我们再来解析一个天气情况的xml文件来熟悉一下函数使用,代码5如下:</p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> #include <stdio.h> <span style="color:#008080;"> 2</span> #include <span style="color:#800000;">"</span><span style="color:#800000;">mxml.h</span><span style="color:#800000;">"</span> <span style="color:#008080;"> 3</span> <span style="color:#008080;"> 4</span> <span style="color:#0000ff;">int</span> main(<span style="color:#0000ff;">void</span><span style="color:#000000;">) </span><span style="color:#008080;"> 5</span> <span style="color:#000000;">{ </span><span style="color:#008080;"> 6</span> FILE *fp = fopen(<span style="color:#800000;">"</span><span style="color:#800000;">weather.xml</span><span style="color:#800000;">"</span>,<span style="color:#800000;">"</span><span style="color:#800000;">rb</span><span style="color:#800000;">"</span><span style="color:#000000;">); </span><span style="color:#008080;"> 7</span> mxml_node_t *xml =<span style="color:#000000;"> mxmlLoadFile(NULL,fp,MXML_NO_CALLBACK); </span><span style="color:#008080;"> 8</span> mxml_node_t *city =<span style="color:#000000;"> NULL; </span><span style="color:#008080;"> 9</span> city = mxmlFindElement(xml,xml,<span style="color:#800000;">"</span><span style="color:#800000;">city</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,NULL,MXML_DESCEND); </span><span style="color:#008080;">10</span> <span style="color:#0000ff;">while</span><span style="color:#000000;">(city) </span><span style="color:#008080;">11</span> <span style="color:#000000;"> { </span><span style="color:#008080;">12</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">省市名称:%s \n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(city,<span style="color:#800000;">"</span><span style="color:#800000;">quName</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">13</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">省会名称:%s \n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(city,<span style="color:#800000;">"</span><span style="color:#800000;">cityname</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">14</span> <span style="color:#008080;">15</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">最低气温:%s \n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(city,<span style="color:#800000;">"</span><span style="color:#800000;">tem1</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">16</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">最高气温:%s \n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(city,<span style="color:#800000;">"</span><span style="color:#800000;">tem2</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">17</span> <span style="color:#008080;">18</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">天气情况:%s \n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(city,<span style="color:#800000;">"</span><span style="color:#800000;">stateDetailed</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">19</span> printf(<span style="color:#800000;">"</span><span style="color:#800000;">风力:%s \n\n</span><span style="color:#800000;">"</span>,mxmlElementGetAttr(city,<span style="color:#800000;">"</span><span style="color:#800000;">windState</span><span style="color:#800000;">"</span><span style="color:#000000;">)); </span><span style="color:#008080;">20</span> city = mxmlFindElement(city,xml,<span style="color:#800000;">"</span><span style="color:#800000;">city</span><span style="color:#800000;">"</span><span style="color:#000000;">,NULL,NULL,MXML_DESCEND); </span><span style="color:#008080;">21</span> <span style="color:#000000;"> } </span><span style="color:#008080;">22</span> <span style="color:#008080;">23</span> <span style="color:#0000ff;">return</span> <span style="color:#800080;">0</span><span style="color:#000000;">; </span><span style="color:#008080;">24</span> }</pre> </div> <p>天气的xml文件如下所示:</p> <div class="cnblogs_code"> <pre><span style="color:#008080;"> 1</span> <span style="color:#0000ff;"><?</span><span style="color:#ff00ff;">xml version="1.0" encoding="UTF-8"</span><span style="color:#0000ff;">?></span> <span style="color:#008080;"> 2</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">china </span><span style="color:#ff0000;">dn</span><span style="color:#0000ff;">="nay"</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 3</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="黑龙江"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="heilongjiang"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="哈尔滨"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="17"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="21"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东南风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 4</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="吉林"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="jilin"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="长春"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="21"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="小到中雨转雷阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="16"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="20"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东南风转西北风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 5</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="辽宁"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="liaoning"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="沈阳"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云转雷阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="15"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="西南风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 6</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="海南"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="hainan"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="海口"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云转雷阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="33"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="西南风3-4级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 7</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="内蒙古"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="neimenggu"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="呼和浩特"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="23"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="西北风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 8</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="新疆"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="xinjiang"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="乌鲁木齐"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="晴"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="18"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="29"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;"> 9</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="西藏"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="xizang"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="拉萨"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="雷阵雨转多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="10"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="23"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">10</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="青海"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="qinghai"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="西宁"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="8"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="中雨转阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="20"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东南风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">11</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="宁夏"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="ningxia"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="银川"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="2"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="2"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阴"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="15"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="25"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">12</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="甘肃"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="gansu"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="兰州"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="小雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="14"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="24"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">13</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="河北"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="hebei"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="石家庄"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="19"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="31"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="北风转南风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">14</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="河南"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="henan"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="郑州"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="晴"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="20"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="33"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">15</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="湖北"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="hubei"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="武汉"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="2"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阴转小雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="21"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="29"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">16</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="湖南"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="hunan"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="长沙"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阵雨转小雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="24"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="29"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="北风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">17</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="山东"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="shandong"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="济南"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="晴转多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="20"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="32"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="南风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">18</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="江苏"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="jiangsu"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="南京"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="21"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="32"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东南风转东风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">19</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="安徽"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="anhui"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="合肥"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="晴转多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="22"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="32"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="北风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">20</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="山西"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="shanxi"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="太原"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="12"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="27"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">21</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="陕西"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="sanxi"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="西安"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="2"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云转阴"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="19"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">22</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="四川"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="sichuan"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="成都"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="小雨转多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="19"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="29"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">23</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="云南"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="yunnan"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="昆明"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="17"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="24"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">24</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="贵州"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="guizhou"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="贵阳"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="2"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="21"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阴转小到中雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="18"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="23"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东北风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">25</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="浙江"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="zhejiang"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="杭州"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="22"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="29"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东风小于3级转3-4级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">26</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="福建"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="fujian"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="福州"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="2"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阵雨转阴"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="25"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="31"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风转东风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">27</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="江西"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="jiangxi"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="南昌"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="24"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="32"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">28</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="广东"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="guangdong"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="广州"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="雷阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="33"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">29</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="广西"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="guangxi"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="南宁"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云转阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="25"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="33"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="东南风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">30</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="北京"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="beijing"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="北京"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="晴"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="18"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="31"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">31</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="天津"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="tianjin"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="天津"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="晴转多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="20"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="31"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="西南风转南风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">32</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="上海"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="shanghai"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="上海"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="0"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="晴转多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="23"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="31"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="南风转东北风小于3级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">33</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="重庆"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="chongqing"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="重庆"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="8"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="8"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="中雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="20"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="23"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">34</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="香港"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="xianggang"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="香港"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="30"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">35</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="澳门"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="aomen"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="澳门"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="3"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="31"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">36</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="台湾"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="taiwan"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="台北"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="9"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="10"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="大雨转暴雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="30"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="微风"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">37</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="西沙"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="xisha"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="西沙"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="1"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="多云"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="29"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="32"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="西南风4-5级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">38</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="南沙"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="nanshadao"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="南沙"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="4"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="雷阵雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="28"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="31"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="西风5-6级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">39</span> <span style="color:#0000ff;"><</span><span style="color:#800000;">city </span><span style="color:#ff0000;">quName</span><span style="color:#0000ff;">="钓鱼岛"</span><span style="color:#ff0000;"> pyName</span><span style="color:#0000ff;">="diaoyudao"</span><span style="color:#ff0000;"> cityname</span><span style="color:#0000ff;">="钓鱼岛"</span><span style="color:#ff0000;"> state1</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> state2</span><span style="color:#0000ff;">="7"</span><span style="color:#ff0000;"> stateDetailed</span><span style="color:#0000ff;">="小雨"</span><span style="color:#ff0000;"> tem1</span><span style="color:#0000ff;">="26"</span><span style="color:#ff0000;"> tem2</span><span style="color:#0000ff;">="28"</span><span style="color:#ff0000;"> windState</span><span style="color:#0000ff;">="北风转东北风3-4级"</span><span style="color:#0000ff;">></</span><span style="color:#800000;">city</span><span style="color:#0000ff;">></span> <span style="color:#008080;">40</span> <span style="color:#0000ff;"></</span><span style="color:#800000;">china</span><span style="color:#0000ff;">></span></pre> </div> <p>编译程序,执行程序,如下图所示,由于内容较多,所以截图只有前半部分,结果已经出来了</p> <p><a href="http://img.e-com-net.com/image/info8/1882e2d6b86d4fa2a0a343af95221818.png" target="_blank"><img src="http://img.e-com-net.com/image/info8/1882e2d6b86d4fa2a0a343af95221818.png" alt="xml简单介绍及libmxml编程_第6张图片" width="686" height="522" style="border:1px solid black;"></a></p> <p>以上就是基于mxml库的对于xml一些简单介绍,xml是很强大的,如果还想继续深入学习可以继续深入研究libmxml库,这里就介绍到这里。</p> </div> <p>转载于:https://www.cnblogs.com/liunianshiwei/p/6086577.html</p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1279306852248600576"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(xml简单介绍及libmxml编程)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1942703012006916096.htm" title="LeetCode-169-多数元素(完整代码C语言)" target="_blank">LeetCode-169-多数元素(完整代码C语言)</a> <span class="text-muted">William国学</span> <a class="tag" taget="_blank" href="/search/LeetCode%E5%88%B7%E9%A2%98%E7%AC%94%E8%AE%B0/1.htm">LeetCode刷题笔记</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a> <div>LeetCode-169-多数元素(完整代码C语言)题目示例及提示代码1(C语言)(部分样例未通过)代码2(C语言)解读题目给定一个大小为n的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊n/2⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majority-ele</div> </li> <li><a href="/article/1942701496453885952.htm" title="死锁(Dead Lock)详解" target="_blank">死锁(Dead Lock)详解</a> <span class="text-muted"></span> <div>1.什么是死锁死锁是多线程或多进程并发编程中的一种常见问题,它发生在两个或多个线程(或进程)相互等待对方释放资源的情况下,导致它们都无法继续执行下去的状态。这种情况下,每个线程都在等待某个资源,而同时也拥有一些资源,这使得它们之间产生了僵局,无法继续执行。死锁通常包括以下四个必要条件:互斥条件(MutualExclusion):每个资源只能同时被一个线程占用。如果一个线程占用了某个资源,其他线程就</div> </li> <li><a href="/article/1942699352543784960.htm" title="SpringBoot多数据源动态切换方案:AbstractRoutingDataSource详解" target="_blank">SpringBoot多数据源动态切换方案:AbstractRoutingDataSource详解</a> <span class="text-muted">fanxbl957</span> <a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>博主介绍:Java、Python、js全栈开发“多面手”,精通多种编程语言和技术,痴迷于人工智能领域。秉持着对技术的热爱与执着,持续探索创新,愿在此分享交流和学习,与大家共进步。DeepSeek-行业融合之万象视界(附实战案例详解100+)全栈开发环境搭建运行攻略:多语言一站式指南(环境搭建+运行+调试+发布+保姆级详解)感兴趣的可以先收藏起来,希望帮助更多的人SpringBoot多数据源动态切换</div> </li> <li><a href="/article/1942696326953234432.htm" title="Swift 解 LeetCode 321:拼接两个数组中的最大数,贪心 + 合并全解析" target="_blank">Swift 解 LeetCode 321:拼接两个数组中的最大数,贪心 + 合并全解析</a> <span class="text-muted"></span> <div>文章目录摘要描述题解答案题解代码分析(Swift实现)题解代码详解maxSubArray——单调栈选最大子序列merge——合并两个数组形成最大数枚举所有组合,找最大拼接示例测试及结果示例1示例2示例3时间复杂度分析空间复杂度分析总结摘要想象你有两组数字,每组都像一个“待拼接的号码牌”。你的目标是——从中选出某几个数字,把它们拼成一个尽可能大的数。听起来是不是有点像拼接手机号,或者在广告里比大小?</div> </li> <li><a href="/article/1942692420139413504.htm" title="大学生HTML期末大作业——HTML+CSS+JavaScript传统文化" target="_blank">大学生HTML期末大作业——HTML+CSS+JavaScript传统文化</a> <span class="text-muted">无·糖</span> <a class="tag" taget="_blank" href="/search/Web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">Web前端期末大作业</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%AD%A6%E7%94%9F/1.htm">大学生</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">大作业</a><a class="tag" taget="_blank" href="/search/%E6%9C%9F%E6%9C%AB%E4%BD%9C%E4%B8%9A/1.htm">期末作业</a> <div>HTML+CSS+JS【传统文化】网页设计期末课程大作业web前端开发技术web课程设计网页规划与设计文章目录一、网站题目二、网站描述三、网站介绍四、网站效果五、️网站代码六、️‍如何学习进步七、‍☠️更多干货文章目录一、网站题目传统文化精美设计5页含注册登录二、网站描述总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮</div> </li> <li><a href="/article/1942690026072633344.htm" title="空对象模式(Null Object Pattern)" target="_blank">空对象模式(Null Object Pattern)</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>空对象模式(NullObjectPattern)在面向对象编程中,空对象模式(NullObjectPattern)是一种设计模式,其核心思想是当对象不包含任何有意义的行为或状态时,提供一个空对象来代替一个实际的对象。这样可以在不创建实际对象的情况下,避免空指针异常,提高代码的健壮性和可读性。一、空对象模式概述空对象模式通过引入一个空对象来替代空指针,使得程序在处理对象引用时更加安全。这种模式在以下</div> </li> <li><a href="/article/1942690026487869440.htm" title="XML 命名空间" target="_blank">XML 命名空间</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>XML命名空间引言XML(可扩展标记语言)是一种用于存储和传输数据的标记语言。在XML中,命名空间(Namespace)是一种用于区分不同元素和属性的方法,它有助于避免元素和属性名称的冲突,并提高XML文档的可维护性和互操作性。本文将深入探讨XML命名空间的概念、使用方法以及在实际应用中的重要性。命名空间的概念在XML中,命名空间是一个URI(统一资源标识符)字符串,用于标识一个元素或属性所属的命</div> </li> <li><a href="/article/1942689899761168384.htm" title="Puppeteer 库简介:背景、用法与原理" target="_blank">Puppeteer 库简介:背景、用法与原理</a> <span class="text-muted">超级土豆粉</span> <a class="tag" taget="_blank" href="/search/typescript/1.htm">typescript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Puppeteer库简介:背景、用法与原理一、背景Puppeteer是Google官方推出的一个Node.js库,最初于2017年发布。它为开发者提供了一个高级API,用于通过编程方式控制Chrome或Chromium浏览器。Puppeteer主要用于自动化网页操作、爬虫、UI测试、生成PDF截图等场景。随着Web自动化需求的增长,Puppeteer逐渐成为前端开发、测试和数据采集领域的重要工具。</div> </li> <li><a href="/article/1942689267599863808.htm" title="2025 年前端主流框架对比和竞争格局及趋势发展" target="_blank">2025 年前端主流框架对比和竞争格局及趋势发展</a> <span class="text-muted"></span> <div>2025年前端框架的竞争格局呈现出主流框架稳定演进、新兴技术快速渗透的特点,同时全栈整合、跨端效能、AI集成成为核心发展方向。以下是基于最新行业动态和技术实践的深度解析:一、主流框架竞争态势与核心能力1.React:企业级生态的持续统治力市场地位:全球使用率超40%,尤其在金融、社交等数据密集型场景占据主导。字节跳动、腾讯等大厂的复杂Web应用仍以React为首选。技术突破:并发模式(Concur</div> </li> <li><a href="/article/1942688384698871808.htm" title="后端框架" target="_blank">后端框架</a> <span class="text-muted">再见,再也不见(๑>؂<๑)</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>后端开发中,使用框架可以提高开发效率、简化代码编写,并提供丰富的功能和工具支持。以下是一些流行的后端框架:SpringFramework:特点:SpringFramework是一个全功能的Java开发框架,提供了依赖注入、面向切面编程、事务管理等功能,广泛用于构建企业级应用。生态系统:Spring生态系统庞大,包括SpringBoot用于快速搭建项目、SpringData用于数据访问、Spring</div> </li> <li><a href="/article/1942687124876750848.htm" title="Rust 数据类型" target="_blank">Rust 数据类型</a> <span class="text-muted">froginwe11</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Rust数据类型引言Rust是一种系统编程语言,以其高性能和安全性而闻名。在Rust中,正确地使用数据类型对于编写高效、健壮的代码至关重要。本文将深入探讨Rust的数据类型,包括基本数据类型、复合数据类型以及引用和生命周期等概念。基本数据类型Rust提供了丰富的基本数据类型,包括整型、浮点型、字符和布尔型。整型Rust中的整型包括:i8至i128:有符号整数,大小分别为8位至128位。u8至u12</div> </li> <li><a href="/article/1942684858924986368.htm" title="汇编语言:基于x86处理器第一章习题解答" target="_blank">汇编语言:基于x86处理器第一章习题解答</a> <span class="text-muted">「已注销」</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E5%86%85%E6%A0%B8%E8%B5%84%E6%B7%B1%E4%B8%93%E5%AE%B6/1.htm">内核资深专家</a><a class="tag" taget="_blank" href="/search/arm/1.htm">arm</a> <div>汇编语言习题解答习题解答1.1.3本节回顾习题解答1.1.3本节回顾1、汇编器和链接器是如何一起工作的?汇编程序要转化为可执行程序,需要先译码后组合。这是因为一个完整的汇编程序常常是由多个文件构成,先用汇编器将每一个文件中的汇编代码转化为机器语言后,链接器再把这些文件组合成一个可执行程序。2、学习汇编语言如何能提高你对操作系统的理解?可用汇编语言验证操作系统的理论知识,从而更深刻的掌握操作系统3、</div> </li> <li><a href="/article/1942682717191729152.htm" title="StringBuilder练习项目代码及相关知识点" target="_blank">StringBuilder练习项目代码及相关知识点</a> <span class="text-muted"></span> <div>1.动态字符串操作需求:编写一个程序,接收用户输入的多个单词,并将它们组合成一个完整的句子,同时支持以下功能:动态添加单词删除某些单词将句子反转importjava.util.Scanner;publicclassStringBuilderDemo{publicstaticvoidmain(String[]args){StringBuildersb=newStringBuilder();Scann</div> </li> <li><a href="/article/1942680320830664704.htm" title="如何设计高可用容灾架构?" target="_blank">如何设计高可用容灾架构?</a> <span class="text-muted">深山技术宅</span> <a class="tag" taget="_blank" href="/search/%E7%B4%A0%E5%85%BB/1.htm">素养</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C/1.htm">经验</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>设计高可用容灾架构需遵循分级冗余、自动故障转移、数据零丢失原则,通过多层次防御体系保障业务连续性。以下为经过亿级流量验证的架构方案及实施步骤:一、全局容灾架构拓扑graphTBsubgraphRegionA[主地域-上海]AZ1[可用区A]-->LB1[SLB负载均衡]AZ2[可用区B]-->LB1LB1-->App1[应用集群]App1-->DB1[(MySQLMGR组)]App1-->Cach</div> </li> <li><a href="/article/1942676162283106304.htm" title="C#配置全面详解:从传统方式到现代配置系统" target="_blank">C#配置全面详解:从传统方式到现代配置系统</a> <span class="text-muted">阿蒙Armon</span> <a class="tag" taget="_blank" href="/search/C%23%E5%B7%A5%E4%BD%9C%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/1.htm">C#工作中的应用</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>C#配置全面详解:从传统方式到现代配置系统在软件开发中,配置是指应用程序运行时可调整的参数集合,如数据库连接字符串、API地址、日志级别等。将这些参数从代码中分离出来,便于在不修改代码的情况下调整应用行为。C#提供了多种配置管理方式,从传统的XML配置文件到现代的多源配置系统,每种方式都有其适用场景。本文将全面介绍C#中的配置技术,帮助开发者根据项目需求选择合适的配置方案。一、配置基础与核心概念1</div> </li> <li><a href="/article/1942676163386208256.htm" title="豆瓣8.6分神作:这本《JavaScript DOM编程艺术》,凭什么让前端人读了12年仍奉为圭臬?" target="_blank">豆瓣8.6分神作:这本《JavaScript DOM编程艺术》,凭什么让前端人读了12年仍奉为圭臬?</a> <span class="text-muted">阿蒙Armon</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>豆瓣8.6分神作:这本《JavaScriptDOM编程艺术》,凭什么让前端人读了12年仍奉为圭臬?如果你是Web开发者,一定听过这样的困惑:“学了一堆JavaScript语法,却还是写不出流畅的动态交互?”“懂HTML和CSS,可面对DOM操作总觉得隔层纱?”别急,有一本豆瓣8.6分、5星好评占比47.4%的经典,早就为这些问题准备好了答案——它就是《JavaScriptDOM编程艺术(第2版)》</div> </li> <li><a href="/article/1942676034948231168.htm" title="C#中Struct与IntPtr转换:实用扩展方法" target="_blank">C#中Struct与IntPtr转换:实用扩展方法</a> <span class="text-muted">阿蒙Armon</span> <a class="tag" taget="_blank" href="/search/C%23%E5%B7%A5%E4%BD%9C%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/1.htm">C#工作中的应用</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>C#中Struct与IntPtr转换:实用扩展方法在C#编程的世界里,我们常常会遇到需要与非托管代码交互,或者进行一些底层内存操作的场景。这时,IntPtr类型就显得尤为重要,它可以表示一个指针或句柄,用来指向非托管内存中的数据。而结构体作为一种常用的数据结构,在与IntPtr进行数据传递和转换时,往往需要一些繁琐的操作。为了简化这些操作,提高开发效率,我们可以通过扩展方法来封装相关的功能。接下来</div> </li> <li><a href="/article/1942670491491823616.htm" title="Android逆向工具简单介绍" target="_blank">Android逆向工具简单介绍</a> <span class="text-muted">@ZhangJun</span> <a class="tag" taget="_blank" href="/search/Android/1.htm">Android</a><a class="tag" taget="_blank" href="/search/%E8%BF%9B%E9%98%B6/1.htm">进阶</a><a class="tag" taget="_blank" href="/search/Android%E9%80%86%E5%90%91/1.htm">Android逆向</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E7%BC%96%E8%AF%91/1.htm">反编译</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E6%B1%87%E7%BC%96/1.htm">反汇编</a><a class="tag" taget="_blank" href="/search/Hook/1.htm">Hook</a> <div>目录一、Android逆向概述1、什么是Android逆向2、逆向过程3、逆向用途1)APP自动化执行程序脚本2)修改APP的功能3)APP安全二、常用逆向工具介绍1、APP抓包工具1)Fiddler2)Wireshark2、jadx反编译工具3、APKDB4、Frida之Hook工具5、IDA反汇编工具1)为何反汇编2)如何反汇编3)IDAPro的基本功能:4)IDA目录结构5)常用快捷键6)常</div> </li> <li><a href="/article/1942669733472038912.htm" title="stack_queue扩展学习 --- 反向迭代器" target="_blank">stack_queue扩展学习 --- 反向迭代器</a> <span class="text-muted">茉莉玫瑰花茶</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%90%91%E8%BF%AD%E4%BB%A3%E5%99%A8/1.htm">反向迭代器</a><a class="tag" taget="_blank" href="/search/C%2FC%2B%2B/1.htm">C/C++</a> <div>反向迭代器的实现思路源码及框架分析迭代器是用来遍历容器的,是一种封装,它不需要去关注容器的底层实现(底层是数组,链表,还是树等等这些结构),我们都是用统一的方式去对容器进行访问,访问行为是类似指针的。我们之前学习了普通迭代器和const迭代器:普通迭代器:能读能写;const迭代器:只能读,只能遍历数据,得到数据,不能修改数据,是不能写的。我们之前学的普通迭代器是正向迭代器,如果我想逆方向遍历呢?</div> </li> <li><a href="/article/1942663684413255680.htm" title="车牌识别相机在停车场的应用" target="_blank">车牌识别相机在停车场的应用</a> <span class="text-muted">电子护照杨健辉</span> <a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E7%A1%AC%E4%BB%B6/1.htm">智能硬件</a><a class="tag" taget="_blank" href="/search/ocr/1.htm">ocr</a> <div>车牌识别相机在停车场的应用已经成为现代智慧停车系统的核心,通过自动化、智能化的管理,显著提升车辆通行效率、降低人工成本并增强安全性。以下是车牌识别相机在停车场的主要应用场景及技术实现:1.无人值守车辆进出管理应用场景自动识别车牌:车辆到达入口/出口时,车牌识别相机自动抓拍车牌并识别号码,道闸自动抬杆放行,无需人工干预。无感支付:识别车牌后自动关联车主账户(如支付宝、微信或ETC),实现自动扣费,车</div> </li> <li><a href="/article/1942662548994191360.htm" title="解决lombok注解失效问题" target="_blank">解决lombok注解失效问题</a> <span class="text-muted"></span> <div>Lombok注解失效是Java开发中的常见问题,通常由依赖配置、IDE支持或构建工具设置引起。最近在拉取别人springboot3+jdk21版本的项目时遇到了lombok注解失效,导致项目无法启动的问题,以下是我的解决方案:首先检查idea的lombok的注解设置:务必和默认设置一样!!!以下是网上的一些解决方案,希望对大家有所帮助:一、检查依赖配置Maven项目在pom.xml中确保依赖包含a</div> </li> <li><a href="/article/1942662421688676352.htm" title="想要了解大模型,看懂这一篇就够了!大模型工作流程及核心参数介绍!" target="_blank">想要了解大模型,看懂这一篇就够了!大模型工作流程及核心参数介绍!</a> <span class="text-muted">Gq.xxu</span> <a class="tag" taget="_blank" href="/search/qwen3/1.htm">qwen3</a><a class="tag" taget="_blank" href="/search/vllm/1.htm">vllm</a><a class="tag" taget="_blank" href="/search/transforms/1.htm">transforms</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B%E9%83%A8%E7%BD%B2/1.htm">大语言模型部署</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>若想深入探究大模型核心参数的效果与作用,就务必先弄清大模型的工作流程,明确核心参数在流程各阶段的效能与功能,知晓其具体含义。一,大模型的工作流程大模型运行时的工作原理可以概括为输入处理→特征提取→模型推理→结果生成四个核心阶段,整个过程融合了深度学习架构、自然语言处理技术以及分布式计算能力。从用户输入到大模型输出,整个工作的处理流程如下:输入文本→分词→嵌入+位置编码→Transformer多层处</div> </li> <li><a href="/article/1942660405440606208.htm" title="【初阶学习Linux】初识Linux" target="_blank">【初阶学习Linux】初识Linux</a> <span class="text-muted">鳄鱼皮坡</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.Linux背景介绍发展史:本门课程学习Linux系统编程,你可能要问Linux从哪里来?它是怎么发展的?在这里简要介绍Linuxs的发展史。要说Linux,还得从UNIX说起。UNIX发展的历史:1968年,一些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了一个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。1969-1970年,AT&</div> </li> <li><a href="/article/1942653978999320576.htm" title="R 语言操作csv文件详解" target="_blank">R 语言操作csv文件详解</a> <span class="text-muted"></span> <div>在R中,我们可以从R环境外部存储的文件中读取数据。我们还可以将数据写入将由操作系统存储和访问的文件中。R可以读取和写入各种文件格式,如csv、excel、xml等。在本章中,我们将学习从csv文件读取数据,然后将数据写入csv文件。该文件应存在于当前工作目录中,以便R可以读取它。当然我们也可以设置自己的目录并从那里读取文件。获取和设置工作目录您可以使用**getwd()函数检查R工作区指向哪个目录</div> </li> <li><a href="/article/1942652593872367616.htm" title="关于有时候使用VPN后,关闭系统代理后短时间无法正常使用网络的原因及解决办法" target="_blank">关于有时候使用VPN后,关闭系统代理后短时间无法正常使用网络的原因及解决办法</a> <span class="text-muted"></span> <div>为什么?以下是可能的原因代理设置残留关闭代理后,部分应用或系统服务仍尝试通过原代理服务器连接,导致短暂无法访问网络。DNS缓存未刷新VPN可能修改了DNS服务器,关闭代理后旧DNS缓存未及时清除,需等待缓存过期(通常几分钟到几小时)。路由表未即时恢复VPN会添加特殊路由规则,关闭后系统需要时间恢复默认路由,期间流量可能错误转发。DHCP租约续期延迟校园网/DHCP服务器可能需要时间重新分配IP或更</div> </li> <li><a href="/article/1942649193575280640.htm" title="wpf使用MaterialDesign" target="_blank">wpf使用MaterialDesign</a> <span class="text-muted"></span> <div>下载materialDesign在文件中引用头文件xmal文件中xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"app.xmal中<ResourceDictionary</div> </li> <li><a href="/article/1942644910775660544.htm" title="将 gRPC 服务注册到 Consul:从配置到服务发现的完整实践(上)" target="_blank">将 gRPC 服务注册到 Consul:从配置到服务发现的完整实践(上)</a> <span class="text-muted"></span> <div>在微服务架构中,服务注册与发现是实现系统弹性和可扩展性的核心机制。本文将围绕gRPC服务与Consul注册中心的集成展开,结合Go语言的实践案例,详细讲解配置管理、服务注册及服务发现的全流程。一、配置文件在微服务中的核心地位1.1配置管理的重要性在微服务架构中,配置文件承担着以下关键角色:环境隔离:区分开发、测试、生产环境的差异化配置动态调整:无需重启服务即可修改服务行为安全性保障:隔离敏感信息(</div> </li> <li><a href="/article/1942641635972149248.htm" title="深入浅出JavaScript定时器:掌握异步编程的核心工具" target="_blank">深入浅出JavaScript定时器:掌握异步编程的核心工具</a> <span class="text-muted">coding随想</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>深入浅出JavaScript定时器:掌握异步编程的核心工具在前端开发中,JavaScript定时器是一个看似简单却功能强大的工具。它不仅是实现延时操作和周期性任务的基础,更是理解JavaScript事件循环机制的关键。本文将带你全面了解JavaScript定时器的原理、用法以及最佳实践。一、什么是JavaScript定时器?JavaScript定时器是通过setTimeout和setInterva</div> </li> <li><a href="/article/1942636465406144512.htm" title="二进制部署Kubernetes1.32.4最新版本高可用集群及附加组件" target="_blank">二进制部署Kubernetes1.32.4最新版本高可用集群及附加组件</a> <span class="text-muted">Nova_CaoFc</span> <a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8%E4%BA%91%E6%8A%80%E6%9C%AF%E4%B8%93%E6%A0%8F/1.htm">容器云技术专栏</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a> <div>一、前言在云原生技术席卷全球的今天,Kubernetes(K8s)已成为容器编排领域的事实标准。当大家都习惯了kubeadm、kubeasz等自动化工具一键部署的便利时,选择通过二进制方式手动搭建K8s集群更像是一场"知其然亦知其所以然"的深度修行。这种方式将带您穿透抽象层,直面etcd的分布式存储机制、kube-apiserver的RESTful接口设计、kubelet与CRI的交互细节,以及各</div> </li> <li><a href="/article/1942635960051232768.htm" title="Java:logback-classic与slf4j版本对应关系" target="_blank">Java:logback-classic与slf4j版本对应关系</a> <span class="text-muted"></span> <div>1、结论logback-classic-1.2.x及以下版本,则适配的slf4j1.0.x-1.7.xlogback-classic-1.3.x及以上版本,则适配的slf4j1.8.x及以上2、原因分析(1)logback-classic-1.2.x及以下版本通过org.slf4j.impl.StaticLoggerBinder初始化logbackorg.slf4j.impl.StaticLogg</div> </li> <li><a href="/article/35.htm" title="JVM StackMapTable 属性的作用及理解" target="_blank">JVM StackMapTable 属性的作用及理解</a> <span class="text-muted">lijingyao8206</span> <a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%AD%97%E8%8A%82%E7%A0%81/1.htm">字节码</a><a class="tag" taget="_blank" href="/search/Class%E6%96%87%E4%BB%B6/1.htm">Class文件</a><a class="tag" taget="_blank" href="/search/StackMapTable/1.htm">StackMapTable</a> <div>        在Java 6版本之后JVM引入了栈图(Stack Map Table)概念。为了提高验证过程的效率,在字节码规范中添加了Stack Map Table属性,以下简称栈图,其方法的code属性中存储了局部变量和操作数的类型验证以及字节码的偏移量。也就是一个method需要且仅对应一个Stack Map Table。在Java 7版</div> </li> <li><a href="/article/162.htm" title="回调函数调用方法" target="_blank">回调函数调用方法</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>最近在看大神写的代码时,.发现其中使用了很多的回调 ,以前只是在学习的时候经常用到 ,现在写个笔记 记录一下   代码很简单:           MainDemo  :调用方法  得到方法的返回结果         </div> </li> <li><a href="/article/289.htm" title="[时间机器]制造时间机器需要一些材料" target="_blank">[时间机器]制造时间机器需要一些材料</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a> <div>      根据我的计算和推测,要完全实现制造一台时间机器,需要某些我们这个世界不存在的物质     和材料...       甚至可以这样说,这种材料和物质,我们在反应堆中也无法获得......      </div> </li> <li><a href="/article/416.htm" title="开口埋怨不如闭口做事" target="_blank">开口埋怨不如闭口做事</a> <span class="text-muted">邓集海</span> <a class="tag" taget="_blank" href="/search/%E9%82%93%E9%9B%86%E6%B5%B7+%E5%81%9A%E4%BA%BA+%E5%81%9A%E4%BA%8B+%E5%B7%A5%E4%BD%9C/1.htm">邓集海 做人 做事 工作</a> <div>“开口埋怨,不如闭口做事。”不是名人名言,而是一个普通父亲对儿子的训导。但是,因为这句训导,这位普通父亲却造就了一个名人儿子。这位普通父亲造就的名人儿子,叫张明正。      张明正出身贫寒,读书时成绩差,常挨老师批评。高中毕业,张明正连普通大学的分数线都没上。高考成绩出来后,平时开口怨这怨那的张明正,不从自身找原因,而是不停地埋怨自己家庭条件不好、埋怨父母没有给他创造良好的学习环境。      </div> </li> <li><a href="/article/543.htm" title="jQuery插件开发全解析,类级别与对象级别开发" target="_blank">jQuery插件开发全解析,类级别与对象级别开发</a> <span class="text-muted">IT独行者</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91/1.htm">开发</a><a class="tag" taget="_blank" href="/search/%E6%8F%92%E4%BB%B6%E3%80%80/1.htm">插件 </a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0/1.htm">函数</a> <div>jQuery插件的开发包括两种: 一种是类级别的插件开发,即给 jQuery添加新的全局函数,相当于给 jQuery类本身添加方法。 jQuery的全局函数就是属于 jQuery命名空间的函数,另一种是对象级别的插件开发,即给 jQuery对象添加方法。下面就两种函数的开发做详细的说明。   1 、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuer</div> </li> <li><a href="/article/670.htm" title="Rome解析Rss" target="_blank">Rome解析Rss</a> <span class="text-muted">413277409</span> <a class="tag" taget="_blank" href="/search/Rome%E8%A7%A3%E6%9E%90Rss/1.htm">Rome解析Rss</a> <div>import java.net.URL;  import java.util.List;    import org.junit.Test;    import com.sun.syndication.feed.synd.SyndCategory;  import com.sun.syndication.feed.synd.S</div> </li> <li><a href="/article/797.htm" title="RSA加密解密" target="_blank">RSA加密解密</a> <span class="text-muted">无量</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86/1.htm">加密</a><a class="tag" taget="_blank" href="/search/%E8%A7%A3%E5%AF%86/1.htm">解密</a><a class="tag" taget="_blank" href="/search/rsa/1.htm">rsa</a> <div>RSA加密解密代码 代码有待整理 package com.tongbanjie.commons.util; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerat</div> </li> <li><a href="/article/924.htm" title="linux 软件安装遇到的问题" target="_blank">linux 软件安装遇到的问题</a> <span class="text-muted">aichenglong</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98/1.htm">遇到的问题</a><a class="tag" taget="_blank" href="/search/ftp/1.htm">ftp</a> <div>1 ftp配置中遇到的问题    500 OOPS: cannot change directory   出现该问题的原因:是SELinux安装机制的问题.只要disable SELinux就可以了   修改方法:1 修改/etc/selinux/config 中SELINUX=disabled    2 source /etc</div> </li> <li><a href="/article/1051.htm" title="面试心得" target="_blank">面试心得</a> <span class="text-muted">alafqq</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a> <div>最近面试了好几家公司。记录下; 支付宝,面试我的人胖胖的,看着人挺好的;博彦外包的职位,面试失败; 阿里金融,面试官人也挺和善,只不过我让他吐血了。。。 由于印象比较深,记录下; 1,自我介绍 2,说下八种基本类型;(算上string。楼主才答了3种,哈哈,string其实不是基本类型,是引用类型) 3,什么是包装类,包装类的优点; 4,平时看过什么书?NND,什么书都没看过。。照样</div> </li> <li><a href="/article/1178.htm" title="java的多态性探讨" target="_blank">java的多态性探讨</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况 //package 1; class A{ public void test(){ System.out.println("A"); } } class D extends A{ public void test(){ S</div> </li> <li><a href="/article/1305.htm" title="网络编程基础篇之JavaScript-学习笔记" target="_blank">网络编程基础篇之JavaScript-学习笔记</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>1.documentWrite <html> <head> <script language="JavaScript"> document.write("这是电脑网络学校"); document.close(); </script> </h</div> </li> <li><a href="/article/1432.htm" title="探索JUnit4扩展:深入Rule" target="_blank">探索JUnit4扩展:深入Rule</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/JUnit/1.htm">JUnit</a><a class="tag" taget="_blank" href="/search/Rule/1.htm">Rule</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a> <div>        本文将进一步探究Rule的应用,展示如何使用Rule来替代@BeforeClass,@AfterClass,@Before和@After的功能。         在上一篇中提到,可以使用Rule替代现有的大部分Runner扩展,而且也不提倡对Runner中的withBefores(),withAfte</div> </li> <li><a href="/article/1559.htm" title="[CSS]CSS浮动十五条规则" target="_blank">[CSS]CSS浮动十五条规则</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/css/1.htm">css</a> <div>这些浮动规则,主要是参考CSS权威指南关于浮动规则的总结,然后添加一些简单的例子以验证和理解这些规则。   1. 所有的页面元素都可以浮动 2. 一个元素浮动后,会成为块级元素,比如<span>,a, strong等都会变成块级元素 3.一个元素左浮动,会向最近的块级父元素的左上角移动,直到浮动元素的左外边界碰到块级父元素的左内边界;如果这个块级父元素已经有浮动元素停靠了</div> </li> <li><a href="/article/1686.htm" title="【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景" target="_blank">【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/partition/1.htm">partition</a> <div>0.Kafka服务器配置 3个broker 1个topic,6个partition,副本因子是2 2个consumer,每个consumer三个线程并发读取   1. Producer package kafka.examples.multibrokers.producers; import java.util.Properties; import java.util.</div> </li> <li><a href="/article/1813.htm" title="zabbix_agentd.conf配置文件详解" target="_blank">zabbix_agentd.conf配置文件详解</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/zabbix+%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/1.htm">zabbix 配置文件</a> <div>Aliaskey的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid。备注: 别名不能重复,但是可以有多个</div> </li> <li><a href="/article/1940.htm" title="java--19.用矩阵求Fibonacci数列的第N项" target="_blank">java--19.用矩阵求Fibonacci数列的第N项</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/fibonacci/1.htm">fibonacci</a> <div>参考了网上的思路,写了个Java版的: public class Fibonacci { final static int[] A={1,1,1,0}; public static void main(String[] args) { int n=7; for(int i=0;i<=n;i++){ int f=fibonac</div> </li> <li><a href="/article/2067.htm" title="Netty源码学习-LengthFieldBasedFrameDecoder" target="_blank">Netty源码学习-LengthFieldBasedFrameDecoder</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>先看看LengthFieldBasedFrameDecoder的官方API http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html API举例说明了LengthFieldBasedFrameDecoder的解析机制,如下: 实</div> </li> <li><a href="/article/2194.htm" title="AES加密解密" target="_blank">AES加密解密</a> <span class="text-muted">chicony</span> <a class="tag" taget="_blank" href="/search/%E5%8A%A0%E5%AF%86%E8%A7%A3%E5%AF%86/1.htm">加密解密</a> <div>AES加解密算法,使用Base64做转码以及辅助加密: package com.wintv.common; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decod</div> </li> <li><a href="/article/2321.htm" title="文件编码格式转换" target="_blank">文件编码格式转换</a> <span class="text-muted">ctrain</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A0%81%E6%A0%BC%E5%BC%8F/1.htm">编码格式</a> <div> package com.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; </div> </li> <li><a href="/article/2448.htm" title="mysql 在linux客户端插入数据中文乱码" target="_blank">mysql 在linux客户端插入数据中文乱码</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81/1.htm">中文乱码</a> <div>1、查看系统客户端,数据库,连接层的编码  查看方法: http://daizj.iteye.com/blog/2174993 进入mysql,通过如下命令查看数据库编码方式: mysql>  show variables like 'character_set_%'; +--------------------------+------</div> </li> <li><a href="/article/2575.htm" title="好代码是廉价的代码" target="_blank">好代码是廉价的代码</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E8%AF%BB%E4%B9%A6/1.htm">读书</a> <div>  长久以来我一直主张:好代码是廉价的代码。 当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。 当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。” 我只</div> </li> <li><a href="/article/2702.htm" title="Android网络请求库——android-async-http" target="_blank">Android网络请求库——android-async-http</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通</div> </li> <li><a href="/article/2829.htm" title="ORACLE 复习笔记之SQL语句的优化" target="_blank">ORACLE 复习笔记之SQL语句的优化</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/SQL%E4%BC%98%E5%8C%96/1.htm">SQL优化</a><a class="tag" taget="_blank" href="/search/Oracle+sql%E8%AF%AD%E5%8F%A5%E4%BC%98%E5%8C%96/1.htm">Oracle sql语句优化</a><a class="tag" taget="_blank" href="/search/SQL%E8%AF%AD%E5%8F%A5%E7%9A%84%E4%BC%98%E5%8C%96/1.htm">SQL语句的优化</a> <div>转载请出自出处:http://eksliang.iteye.com/blog/2097999   SQL语句的优化总结如下   sql语句的优化可以按照如下六个步骤进行: 合理使用索引 避免或者简化排序 消除对大表的扫描 避免复杂的通配符匹配 调整子查询的性能 EXISTS和IN运算符 下面我就按照上面这六个步骤分别进行总结: </div> </li> <li><a href="/article/2956.htm" title="浅析:Android 嵌套滑动机制(NestedScrolling)" target="_blank">浅析:Android 嵌套滑动机制(NestedScrolling)</a> <span class="text-muted">gg163</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/%E6%BB%91%E5%8A%A8%E6%9C%BA%E5%88%B6/1.htm">滑动机制</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%A5%97/1.htm">嵌套</a> <div>谷歌在发布安卓 Lollipop版本之后,为了更好的用户体验,Google为Android的滑动机制提供了NestedScrolling特性 NestedScrolling的特性可以体现在哪里呢?<!--[if !supportLineBreakNewLine]--><!--[endif]--> 比如你使用了Toolbar,下面一个ScrollView,向上滚</div> </li> <li><a href="/article/3083.htm" title="使用hovertree菜单作为后台导航" target="_blank">使用hovertree菜单作为后台导航</a> <span class="text-muted">hvt</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/hovertree/1.htm">hovertree</a><a class="tag" taget="_blank" href="/search/asp.net/1.htm">asp.net</a> <div>  hovertree是一个jquery菜单插件,官方网址:http://keleyi.com/jq/hovertree/ ,可以登录该网址体验效果。 0.1.3版本:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.htm hovertree插件包含文件: http://keleyi.com/jq/hovertree/css</div> </li> <li><a href="/article/3210.htm" title="SVG 教程 (二)矩形" target="_blank">SVG 教程 (二)矩形</a> <span class="text-muted">天梯梦</span> <a class="tag" taget="_blank" href="/search/svg/1.htm">svg</a> <div>SVG <rect> SVG Shapes SVG有一些预定义的形状元素,可被开发者使用和操作: 矩形 <rect> 圆形 <circle> 椭圆 <ellipse> 线 <line> 折线 <polyline> 多边形 <polygon> 路径 <path> </div> </li> <li><a href="/article/3337.htm" title="一个简单的队列" target="_blank">一个简单的队列</a> <span class="text-muted">luyulong</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E9%98%9F%E5%88%97/1.htm">队列</a> <div> public class MyQueue { private long[] arr; private int front; private int end; // 有效数据的大小 private int elements; public MyQueue() { arr = new long[10]; elements = 0; front </div> </li> <li><a href="/article/3464.htm" title="基础数据结构和算法九:Binary Search Tree" target="_blank">基础数据结构和算法九:Binary Search Tree</a> <span class="text-muted">sunwinner</span> <a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a> <div>  A binary search tree (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction that the key in any node is larger than the keys in all</div> </li> <li><a href="/article/3591.htm" title="项目出现的一些问题和体会" target="_blank">项目出现的一些问题和体会</a> <span class="text-muted">Steven-Walker</span> <a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>     第一篇博客不知道要写点什么,就先来点近阶段的感悟吧。     这几天学了servlet和数据库等知识,就参照老方的视频写了一个简单的增删改查的,完成了最简单的一些功能,使用了三层架构。 dao层完成的是对数据库具体的功能实现,service层调用了dao层的实现方法,具体对servlet提供支持。  &</div> </li> <li><a href="/article/3718.htm" title="高手问答:Java老A带你全面提升Java单兵作战能力!" target="_blank">高手问答:Java老A带你全面提升Java单兵作战能力!</a> <span class="text-muted">ITeye管理员</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>本期特邀《Java特种兵》作者:谢宇,CSDN论坛ID: xieyuooo 针对JAVA问题给予大家解答,欢迎网友积极提问,与专家一起讨论! 作者简介: 淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。 CSDN博客地址: http://blog.csdn.net/xieyuooo 作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>