XML封装与解析

来源:互联网 发布:夏俊峰案网络舆论 编辑:程序博客网 时间:2024/06/06 10:52

1.XML封装

封装XML格式文件与封装字符串原理差不多,所以封装方法也是大同小异,需要注意的地方就是:1.XML文件中的引号要保留,封装时需要在引号前间反斜杠“\”;2.封装XML文件时,需要将对象的值进行类型转换,即由其他类型转换为CString类型。下面举一个实例,讲解XML封装方法:

首先是XML文件的格式如下:

<?xml version="1.0" encoding="gb2312" ?><subscribe>< devinfo statid="44030001" devtype="0" devid="00101" devip="192.168.101.1" devport="4660" devprotocol="100" devpassword="" ><type id="1" name=""/></devinfo></subscribe>

封装如上格式XML文件的C++代码:

CString CMapView::PackageXML(GpsInfo info){//封装成XMLCString strResult=_T("<?xml version=\"1.0\" encoding=\"gb2312\" ?>\n") ;CString strTemp;strTemp.Format("<subscribe>\n");strResult+=strTemp;strTemp.Format("<devinfo statid=\"");strResult+=strTemp;strResult+=info.lstrStatID.c_str();strTemp.Format("\" devtype=\"");strResult+=strTemp;strResult+=info.lstrNetType.c_str();strTemp.Format("\" devid=\" \" devip=\"");strResult+=strTemp;strResult+=info.lstrAddr.c_str();strTemp.Format("\" devport=\"%d\" devprotocol=\" \"  devpassword=\" \">\n",info.nPort);strResult+=strTemp;  strTemp.Format("<type id=\"6\""); strResult+=strTemp;//strResult+=info.lstrNetType.c_str();strTemp.Format("  name=\" \"/>\n");strResult+=strTemp;strTemp.Format("</devinfo>\n");strResult+=strTemp;strTemp.Format("</subscribe>\n");strResult+=strTemp;return strResult;}
封装XML文件时,类型转换比较容易出错,下面表格进行了总结:





0 0
原创粉丝点击