• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

高分在线求助XML解析

php 搞代码 3年前 (2022-01-23) 15次浏览 已收录 0个评论
文章目录[隐藏]

本帖最后由 HUENKE 于 2013-10-25 15:58:22 编辑

xml

<?xml version="1.0" encoding="utf-8"?>																			

结构为 nodes下面有node下面还有node
我想做三重循环
foreach()
{
存公司名称
foreach()
{
存部门名称
foreach()
{ 存叶子名称}
}
}

请问我该怎么解析呢,

回复讨论(解决方案)

SimpleXML 用过嘛?

SimpleXML 没解析出来
能帮简单调试一下吗

你想要怎样的数据格式?,下面自己组织一下数据结构吧

<?php$string = <<                                                                            XML;$xml = new SimpleXMLElement($string);$result = $xml->xpath('//node/@name');while(list( , $node) = each($result)) {    echo '@name: ',$node,"\n";}$result = $xml->xpath('//node/@id');while(list( , $node) = each($result)) {    echo '@id: ',$node,"\n";}$result = $xml->xpath('//node[@type=1]/../@id');while(list( , $node) = each($result)) {    echo '@部门的parent_id: ',$node,"\n";}$result = $xml->xpath('//node[@type=2]/../@id');while(list( , $node) = each($result)) {    echo '@叶子的parent_id: ',$node,"\n";}?>

$s =<<                                                                            XML;$xml = simplexml_load_string($s);foreach($xml->node as $node) {  foreach($node->attributes() as $k=>$v) echo "$k => $v\n";  foreach($node->node as $node) {    foreach($node->attributes() as $k=>$v) echo "$k => $v\n";    foreach($node->node as $node) {      foreach($node->attributes() as $k=>$v) echo "$k => $v\n";    }  }}

id

!本文来源gaodai.ma#com搞#代!码(网

搞gaodaima代码=> c5569e2c-0f4a-4ec2-86ba-736b79eca18c
name => A公司
type => 0
id => 4f2b55e9-e10a-496b-8bca-60e6f26daee5
name => 部门1
type => 1
id => 363
name => 叶子1
type => 2
playurl => http://XXXXXXX363
id => 0c5ce42f-ba31-4b7a-8173-79ecae4a73ca
name => 部门2
type => 1
id => 241
name => 叶子1
type => 2
playurl => http://xxxxx=241
id => 356
name => 叶子1
type => 2
playurl => xxxxxxxxx=356

就是按他原样的树状结构

A公司
    部门1
叶子1

部门2
。。。。

再给你一个吧,自己修改一下就是树状了

<?php$string = <<                                                                            XML;$xml = new SimpleXMLElement($string);// var_export($xml);$xmlIterator = new RecursiveIteratorIterator(    new SimpleXMLIterator($string),    RecursiveIteratorIterator::SELF_FIRST);foreach ($xmlIterator as $nodeName => $node) {    echo str_repeat('-', (int)$node['type']);    echo $node['id'], ',', $node['name'], PHP_EOL;}?>

上面#6
$xml = new SimpleXMLElement($string);
这句可以删掉,前面调试的时候留下的


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:高分在线求助XML解析
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址