在调用一个接口函数,对方返回的参数为Widestring类型的XML字符串,但是有时候它返回的信息是带XML头信息"<?xml version="1.0" encoding="gb2312" standalone="yes" ?>",我可以直接通过XMLDocument对象来读取解析;有时候返回的信息不带XML头信息,这时候我会为其追加XML头信息,但是目前无法直接判断返回参数属于哪一类?可不可以直接通过XML字符串来判断

解决方案 »

  1.   

    不带XML头信息头,XMLDocument一样可以读取
      

  2.   

    LS说的是错误,这个问题我碰到过,如果不带头,那么一定会报错的(Xml.Active := true;)
    给你个思路
      对方给你个Widestring 那么你可以先判断一下,
      if pos('version', s) > 0 then ....头已经加了
        xml.xml.text := s
      else 
        xml.xml.text := '<?xml version="1.0" encoding="gb2312" standalone="yes" ?>' + s;
      

  3.   

    还有就是你吧对方发给你的字符串存为一个XML文件,用IE打开先看看,发过来的结构对不对
      

  4.   


    顶判断接收到的字符串是否含有XML头信息里面的关键字