PHP中如何读取SOAP请求返回的exportResult里的F0101标签?
解决方法
$theCall['exportResult']返回的是XML格式数据,并非关联数组,直接用数组键访问自然无效。需要先解析XML,再读取目标节点:
方法1:用SimpleXML解析(推荐)
// 将XML字符串转为SimpleXMLElement对象 $xml = simplexml_load_string($theCall['exportResult']); // 根据实际XML结构读取F0101,注意节点名大小写 $f0101Content = (string)$xml->R0101[0]->F0101; var_dump($f0101Content);
方法2:转为关联数组操作
如果偏好数组形式,可将XML转成数组:
$xml = simplexml_load_string($theCall['exportResult']); $jsonStr = json_encode($xml); $xmlArray = json_decode($jsonStr, true); // 按数组层级访问,注意键名大小写 $f0101Content = $xmlArray['R0101'][0]['F0101']; var_dump($f0101Content);
关键提醒
- 节点名区分大小写:你之前写的
exportresult是小写,但原数据里是exportResult(首字母R大写),这也是访问失败的潜在原因。 - 可以先通过
print_r($xml)或print_r($xmlArray)查看解析后的完整结构,确认节点的实际层级和名称,再调整访问路径。
内容的提问来源于stack exchange,提问作者Mark Leeuwesteijn
相关产品推荐
相关产品推荐

