加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML封装与解析

发布时间:2020-12-16 02:17:19 所属栏目:百科 来源:网络整理
导读:1.XML封装 封装XML格式文件与封装字符串原理差不多,所以封装方法也是大同小异,需要注意的地方就是:1.XML文件中的引号要保留,封装时需要在引号前间反斜杠“”;2.封装XML文件时,需要将对象的值进行类型转换,即由其他类型转换为CString类型。下面举一个

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)
{
	//封装成XML
	CString 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文件时,类型转换比较容易出错,下面表格进行了总结:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读