现有代码见下:
loadxml($xmlstring);
$users = $xmldoc->getelementsbytagname('getuserinfo');
foreach ($users as $user) {
$html .= 'outputcustomer:'.get_txt($user,'customer').'
';
$html .= 'outputgeo:'.get_txt($user,'geocallcli').'
';
}
echo $html;
function get_txt($parent, $name) {
$nodes = $parent->getelementsbytagname($name);
return $nodes->item(0)->nodevalue;
}
?>
回复内容: 现有的php代码输出xml节点时,只能输出第一个同名节点内容100. 请问怎样才能输出所有节点的内容呢?
现有代码见下:
loadxml($xmlstring);
$users = $xmldoc->getelementsbytagname('getuserinfo');
foreach ($users as $user) {
$html .= 'outputcustomer:'.get_txt($user,'customer').'
';
$html .= 'outputgeo:'.get_txt($user,'geocallcli').'
';
}
echo $html;
function get_txt($parent, $name) {
$nodes = $parent->getelementsbytagname($name);
return $nodes->item(0)->nodevalue;
}
?>
最后一行代码
return $nodes->item(0)->nodevalue;
因为只返回item(0)
所以只看得到一个100
只需检测$nodes的长度,循环输出即可
代码
loadxml($xmlstring);$users = $xmldoc->getelementsbytagname('getuserinfo');$html = '';foreach ($users as $user) { $html .= get_txt($user, 'customer') . ''; $html .= get_txt($user, 'geocallcli') . '';}echo $html;function get_txt($parent, $name){ $nodes = $parent->getelementsbytagname($name); $data = ''; for ($i = 0; $i length; $i++) { $data .= 'output' . $name . ':' . $nodes->item($i)->nodevalue . '
'; } return $data;}?>
可否代码示例,谢谢!
