现在要用正则取出里面 17
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>17</error>
<message>同步发送即时短信返回结果</message>
</response>我是这样写的
preg_match("/\<error\>(.*)\<\/error\>/U",$string,$state);但是输出:
Array
(
[0] => <error>17</error>
[1] => 17
)哪些错了啊,还有我用
simplexml_load_string解析这个XML报错,本想用这个函数取<error>这个节点,但是不行,现在只能用正则了
表帮帮忙,谢谢。
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>17</error>
<message>同步发送即时短信返回结果</message>
</response>我是这样写的
preg_match("/\<error\>(.*)\<\/error\>/U",$string,$state);但是输出:
Array
(
[0] => <error>17</error>
[1] => 17
)哪些错了啊,还有我用
simplexml_load_string解析这个XML报错,本想用这个函数取<error>这个节点,但是不行,现在只能用正则了
表帮帮忙,谢谢。
你可以用$state[1]获取到error节点的值。2.simplexml_load_string()如果报错。很可能是文件BOM头的原因或者编码不一致原因。
<?
$xml='<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>17</error>
<message>同步发送即时短信返回结果</message>
</response>';$obj=simplexml_load_string(str_replace(array("\r","\n","\t"),'',$xml));
print_r($obj);
不好意思。没看到是simplexml_load_string()以为是load_file
可能的原因是你的string不是正确的xml格式。
贴load_xml的代码出来。
<response>
<error>17</error>
<message>同步发送即时短信返回结果</message>
</response>这个就是XML啊
echo $xml->error;如果出错,是因为你的编码不合适