如何获得远程api返回的xml的标签
时间:2011-11-25
来源:互联网
http://www.meituan.com/api/v2/beijing/deals
如何使用 DOM 或者 SimpleXML 获得这个页面上的所有标签名 和标签值,按照 http://www.w3school.com.cn/php/php_xml_simplexml.asp 这里的教程只能获得固定的 .xml 文件里的标签名,至于远程返回的xml文件不知道如何获得标签名。。。请教各位帮忙解决下。。。。
如何使用 DOM 或者 SimpleXML 获得这个页面上的所有标签名 和标签值,按照 http://www.w3school.com.cn/php/php_xml_simplexml.asp 这里的教程只能获得固定的 .xml 文件里的标签名,至于远程返回的xml文件不知道如何获得标签名。。。请教各位帮忙解决下。。。。
作者: gogo198 发布时间: 2011-11-25
$xml=file_get_contents('http://www.meituan.com/api/v2/beijing/deals');
$obj=SimpleXMLElement($xml);
......
$obj=SimpleXMLElement($xml);
......
作者: Mr_merlin 发布时间: 2011-11-25
晕~ 是 $obj=new SimpleXMLElement($xml);
作者: Mr_merlin 发布时间: 2011-11-25
引用 2 楼 mr_merlin 的回复:
晕~ 是 $obj=new SimpleXMLElement($xml);
晕~ 是 $obj=new SimpleXMLElement($xml);
这个不能获得 标签名 你测试下。。。。
作者: gogo198 发布时间: 2011-11-25
PHP code
<?php function xml2assoc($xml) { $assoc = null; $attr = null; $tmpName = null; while($xml->read()){ switch ($xml->nodeType) { case XMLReader::END_ELEMENT: return $assoc; case XMLReader::ELEMENT: $assoc[$xml->name] = $xml->isEmptyElement ? '' : xml2assoc($xml); echo "<pre></pre>"; //print_r($xml->name); // print_r($assoc[$xml->name]); //如果此节点下还有子节点, //将递归调用xml2assoc,直到解析到本节点的最深节点 $tmpName = $xml->name; // echo "<pre></pre>"; // print_r($tmpName); //这里$xml->name指节点名称: //<chester>good</chester> //其中chester为$xml->name //good为$xml-value; // print_r($xml->hasAttributes); if($xml->hasAttributes){ // print_r($xml->moveToNextAttribute()); while($xml->moveToNextAttribute()){ // echo "<pre></pre>"; // print_r($xml->value); // print_r($xml->name); $tmpArr[$xml->name] = $xml->value; //这里$xml->name为属性名称 //<chester id=0></chester> //id为$xml->name,0为$xml->value; } // echo "<pre></pre>"; // print_r($tmpArr); $assoc[$tmpName]['attr'] = $tmpArr; // echo '$assoc[$tmpName][attr]'; // print_r($assoc[$tmpName]['attr']); // print_r($assoc[$tmpName]['attr']); unset($tmpArr);//清除到临时属性数组,不然属性值将一直叠加到上次数组中 } break; case XMLReader::TEXT: case XMLReader::CDATA: $assoc['value'] .= $xml->value; } } return $assoc; } $xml = new XMLReader(); $xml->open('http://interface.hd.sohu.com/360/movies.xml'); $assoc = xml2assoc($xml); echo "<br></br>"; echo $title=$assoc['document']['item']['title']['value']; echo $webname=$assoc['document']['webName']['value']; $xml->close(); echo '<pre>'; print_r($assoc); echo '</pre>'; ?>
作者: xiachao2008 发布时间: 2011-11-25
自己研究吧
作者: xiachao2008 发布时间: 2011-11-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28