您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

XML节点提取问题

2024/2/29 16:04:58发布18次查看
现有的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;
}
?>
回复内容: 现有的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;}?>
可否代码示例,谢谢!
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product