xml文件有axis生成的:

{"code":"2","message":"企业名称和企业注册号匹配"}

我想获得ns1:checkQyReturn当中的内容。

请问如何用php获取?

回复讨论(解决方案)

可以使用new SimpleXmlElement解决$x = new SimpleXmlElement($str); foreach($x->entry as $t){ echo $t->id . "

"; echo $t->updated . "

"; $namespaces = $t->getNameSpaces(true); $gd = $t->children($namespaces['ns1']); echo $gd->phoneNumber; }

参考: http://www.neatstudio.com/show-1549-1.shtml

可以使用new SimpleXmlElement解决

试了命名空间,但解析不了最后用的转换json才解析的。

$xmlstr = preg_replace('/\sxmlns="(.*?)"/', ' _xmlns="${1}"', $simple);

$xmlstr = preg_replace('/ $xmlstr = preg_replace('/(\w+):(\w+)="(.*?)"/', '${1}_${2}="${3}"', $xmlstr);

$xmlobj = simplexml_load_string($xmlstr);

$json = json_decode(json_encode($xmlobj), true);

//print_r(json_decode(json_encode($xmlobj), true));

//print_r($json);

$str = $json['soapenv_Body']['checkQyResponse']['ns1_checkQyReturn'];

暴力一下就简单多了$s =<<< XML{{"code":"2","message":"企业名称和企业注册号匹配"}XML;$s = preg_replace('/\w+:/', '', $s);$x = simplexml_load_string($s);print_r($x); SimpleXMLElement Object( [@attributes] => Array ( [soapenv] => //schemas.xmlsoap.org/soap/envelope/ [xsd] => //www.w3.org/2001/XMLSchema [xsi] => //www.w3.org/2001/XMLSchema-instance ) [Body] => SimpleXMLElement Object ( [checkQyResponse] => SimpleXMLElement Object ( [checkQyReturn] => {"code":"2","message":"企业名称和企业注册号匹配"} ) ))

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐