linux下 XML 的学习总结

来源:互联网 发布:右下角网络连接红叉 编辑:程序博客网 时间:2024/06/05 00:17

学习背景:异构系统进行,搭建tcp连接通道,用xml文件进行通信。客户端用java做的web界面,服务器是linux下c写的后台服务。

开发环境:linux是在VMware 下的redhat6.1,我们用eclipse集成在vmware中进行项目管理开发。

由于,以前都是用结构体进行通信,初次接触到xml,以下是个人学习和探索心得:

 

第一步,了解什么是xml?

               XML是一种标记性可扩展的语言,用来存储数据的,其焦点是数据的内容。是一种通用的存储数据的格式。

 

第二步,在tcp通信中xml是怎么被传输的呢?

               tcp通信中,不管传的是什么格式的数据,都是以字节流的形式进行传输的,所以归根到底,要传输xml前

       还是的吧xml文件转换成char字符串后在send。这个就设计到xml和char字符串的转换问题,涉及到xml的相关操作。

 

第三步,怎么操作xml?

               在网上看到了,操作xml在不同的系统下面都有相应的解析器和构造器,比如在linux下面有libxml、

       libxml2等标准库可以用。

 

第四步,在linux中怎么用libxml2类似的库呢?

       1)从xmlsoft站点或ftp(ftp.xmlsoft.org)站点下载libxml压缩包(libxml2-xxxx.tar.gz) 
      
2)对压缩包进行解压缩 
                      tar xvzf libxml2-xxxx.tar.gz
       3)进入解压缩后的文件夹中运行 (到解压路径下面执行下面操作)
         #>./configure --prefix /home/user/myxml/xmlinst(此处为待安装的路径运行configure 到安装路劲下,自己把路径建立好)
         #>make 
         #>make install (这儿需要root权限)
         (#>export PATH=/home/user/myxml/xmlinst/bin:$PATH(添加路径)
 )

       安装完成后/home/user/myxml/下会多生成4个文件夹:bin  include  lib  share

第五步,安装好libxml2库后,需要在eclipse中设置一些头文件和lib的连接路径。

 

(1)头文件路径,告诉你工程,include这xml的头文件

(2)lib库设置,告诉连接器,头文件里面的函数在这里链接

           Eclipse设置链接路径: /home/user/myxml/lib

          设置连接库 xml2

使用命令编译的时候,加上以下参数:

         -L /home/user/myxml/  -lxml2

         下面编译执行就ok了。

总结:

c语言对xml进行操作,发送接收tcp的xml数据,无非两种:发送,接收。

发送的时候,需要把xml文件,转换成xmlchar进行发送。这里涉及到的函数:

接收的时候,需要把xmlchar的字节流,转换成xml文件,然后对文件进行操作,通过调用libxml2中的函数进行xml的解析。这里涉及到的函数

 

得到root节点后,要对后面的节点和节点内容进行操作,涉及到主要函数为: