XML

来源:互联网 发布:手机淘宝账号怎么登录 编辑:程序博客网 时间:2024/05/01 09:03

<?xml version="1.0" encoding="GBK" standalone="yes" ?>
<bluesea version="2" name="config" author="yangb">
  <skin current="black">
    <item name="default" caption="系统默认">100</item>
    <item name="black" caption="黑色" >200</item>
  </skin>
</bluesea>

 

 

三个概念

元素:bluesea 、skin 、item

属性:current、name、caption

值:100、200

 

元素bluesea有有元素skin,元素skin有元素item

 

 

没有值时可以这样写:

 

<?xml version="1.0" encoding="GBK" standalone="yes" ?>
<bluesea version="2" name="config" author="yangb">
  <skin current="black">
    <item name="default" caption="系统默认"/>
    <item name="black" caption="黑色" />
  </skin>
</bluesea>



常用tinyxml解析,发现了他一个很好的优点

char xmlstr[30] = { '<', '?', 'x', 'm', 'l', ' ', 'v', 'e', 'r', 's', 'i', 'o', 'n', '=', '\"', '1', '.', '0', '\"', '?', '>', '<', 'h', '>', 'df', '<', '/', 'h', '>', 'a'};

TiXmlDocument docRsp;

docRsp.Parse(xmlstr);

刚好30个字节,前面29个是完整的xml格式,第30个是‘a’,然后解析成功了

从网络中接收数据到的数据为混合模式,前一段为xml数据,后一段是二进制数据,传送的时候xml数据没有加‘\0’,

有了tinyxml的这一有点,就很好了,直接把xml数据的头指针给Parse就可以了。不知道其他的xml库是否也一样的,反正这个很好啊