首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

PHP怎么解析XML代码

2013-01-19 
PHP如何解析XML代码?是一个短信接口:调用的代码如下:$res file_get_contents(http://XXXXXXX/webservic

PHP如何解析XML代码?
是一个短信接口:调用的代码如下:


$res = file_get_contents("http://XXXXXXX/webservice.asmx/mt?Sn=$name&Pwd=$pwd&mobile=$tel&content=$msg");
print_r($res);



print_r($res)后获得一段XML代码,如下:

  <?xml version="1.0" encoding="utf-8" ?> 
  <int xmlns="http://tempuri.org/">0</int> 


看到这段代码中的0了么?我标了红色。如果返回值是0,则发送成功。
但是我这样判断是不可以的:

if($res=="0"){
mysql_query("update sms set etime=now(),wei='发送成功' where sms_id='$sms_id'");
}



请问我应该怎样判断获取到了0并在数据库中更新发送状态?
[解决办法]
preg_match('/<int xmlns="http\:\/\/tempuri\.org\/">(.+)<\/int>/s', $res,$r);
if($r[1]=="0"){
mysql_query("update sms set etime=now(),wei='发送成功' where sms_id='$sms_id'");
            }
[解决办法]
返回xml是个字符串(而且非常短),你要判断的也是个字符串,所以没必要先解析xml
当然你去解析也不是错误,只是多耗点资源而已,先加载一个dom class,再parse
如果你要获得一个xml节点(复杂点的),再考虑后一种方法吧

#3的正则是一样的,但从返回的字串判断
你这情况就执行与不执行的布林值,所以我觉得连返回都可以省了
直接判断preg_match()是否True就够了

引用:
不明白,应该是用php先解析XML吧?
有人能版本帮帮我么?

热点排行