以下是我目前用于测试目的的代码。我必须在我的项目中进一步使用它。
它访问某个Web服务并以xml的形式检索数据。 XML被带到$arr
数组。
{I}中的$url
和第3个参数的地址没有故意提及。
client->call()
如果我将$url = "";
$client= new nusoap_client($url);
$param = array("status"=>"p2");
$arr = $client->call('getAllVisitByStatus',$param,'');
echo $arr."\n";
$size = sizeof($arr);
echo $size;
for($num=0; $num<986; ++$num)
{
echo $arr[$num], "\n";
if($arr[$num] == '>')
{
echo "<br/> ";
}
}
返回的数据保存到数组中并用循环打印,那么就会打印出这样的XML
client->call()
但是,如果将<?xml version = "1.0" encoding = "UTF - 8" standalone = "yes" ?>
<lists>
<visitW>
<followup> 2015 - 01 - 30 00:50:00.0 </followup>
<person_id> 12 </person_id>
<remarks> nothing </remarks>
<treatment> doing </treatment>
<visit_date> 2015 - 01 - 04 - 00 - 24 - </visit_date>
<visit_id> 4 </visit_id>
<visit_type> Hesschart</visit_type>
</visitW>
</lists>
作为字符串,则打印出来:
$arr
因此,在一个字符串中,它打印时没有标签,就像这样。
问题在于,当打印数组的大小时,它会打印1.但是,该数组包含服务调用带来的整个XML。
当我使用精确数量的元素循环,即986时,它会按原样打印整个XML。
问题是为什么它显示1作为数组的大小?此外,包含XML的数组是否可以放在DOM Parser中?