2 回答
TA贡献1824条经验 获得超5个赞
处理响应字符串的方法不是一个好主意,您应该坚持将内容作为XML处理并使用。这使用XPath查找处理数据的起点(我无法使用当前示例进行测试),但是应该可以帮助您完成所需的工作...
// Load the original reply
$xml = simplexml_load_string($reply);
//running through the array and printing all values
if ($xml !== false) {
// Find the <auto> element (use [0] as you want the first one)
$auto = $xml->xpath("//auto")[0];
// Loop through the cotizacion elements in the auto element
foreach ($auto->cotizacion as $cotizacion) {
foreach ($cotizacion->cobertura as $cobertura) {
echo $cobertura->codigo;
echo '<br>';
echo $cobertura->descripcion;
echo '<br>';
echo $cobertura->premio;
echo '<br>';
echo $cobertura->cuotas;
echo '<br>';
echo $cobertura->impcuotas;
echo '<br>';
}
}
}
TA贡献1831条经验 获得超10个赞
SOAP响应仍然是XML文档,因此请与其一起使用而不是与之抗争。将其视为字符串绝对不是很好。
据我所知,您正在尝试使用所有<cotizaction>元素。在XML文档中查找元素很简单。在XPath上阅读。
$xml = simplexml_load_string(htmlspecialchars($reply));
if ($xml) {
foreach ($xml->xpath('//cotizacion') as $cotizacion) {
// do your thing
}
}
- 2 回答
- 0 关注
- 179 浏览
添加回答
举报