php遍历xml
Ⅰ php 大牛解答,追加悬赏
为什么不用数据库,不明白你为什么这么做,你要是非要读取修改文件的话,那就用xml吧,php对xml有专门的操作函数,手册上写的很清楚啦
Ⅱ php读取xml中根据条件指定的值
首先,你的xml文件,缺少root元素,version后边没有"结尾。
然后是你解析的思路是:
先用simplexml_load_string或者$xml = simplexml_load_file('test.xml');
,读取xml,然后用get_object_vars,转成数组,然后根据数组,找出对应关系,或者在生成数组的时候直接写成‘lisan’=>'no';这个关系。简单点就是直接读成数组,然后遍历,找到对应的值之间的关系就OK
用到的函数:
functiongetXmlData($strXml){
$pos=strpos($strXml,'xml');
if($pos){
$xmlCode=simplexml_load_string($strXml,'SimpleXMLElement',LIBXML_NOCDATA);
$arrayCode=get_object_vars_final($xmlCode);
return$arrayCode;
}else{
return'';
}
}
functionget_object_vars_final($obj)
{
if(is_object($obj)){
$obj=get_object_vars($obj);
}
if(is_array($obj)){
foreach($objas$key=>$value){
$obj[$key]=get_object_vars_final($value);
}
}
return$obj;
}
我处理的结果:
Ⅲ php数组遍历类与用法示例
本文实例讲述了php数组遍历类与用法。分享给大家供大家参考,具体如下:
<?php
class
scanArray{
public
$arr;
public
$where;
private
$str;
public
function
scan($arr,$where="array"){
$this->arr
=
$arr;
$this->where
=
$where;
foreach($this->arr
as
$k=>$v){
if(is_array($v)){
$this->where
=
($this->where)."[{$k}]";
$this->scan($v,$this->where);
}else{
$this->str
.=
$this->where."[{$k}]=".$v.'<br
/>';
}
}
return
$this->str;
}
function
__destruct(){
unset($this->arr);
unset($this->where);
}
}
$a
=
array('g'=>"a",'vv'=>array("b"=>"b","l"=>"c","xx"=>array("e","g")));
$ah
=
new
scanArray();
$b
=
$ah->scan($a);
echo
$b;
运行结果:
array[g]=a
array[vv][b]=b
array[vv][l]=c
array[vv][xx][0]=e
array[vv][xx][1]=g
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》及《PHP常用遍历算法与技巧总结》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:PHP遍历数组的方法汇总PHP
数组遍历方法大全(foreach,list,each)PHP
数组遍历foreach语法结构及实例PHP中多维数组的foreach遍历示例php实现遍历多维数组的方法PHP中使用foreach()遍历二维数组的简单实例PHP遍历数组的三种方法及效率对比分析PHP实现的操作数组类库定义与用法示例PHP数组操作类实例PHP数组生成XML格式数据的封装类实例
Ⅳ php如何通过xml传递数据
获取request中body的字符串数据,比如一个数组转成xml后,你用post方式给服务器发送xml的字符串,服务器就用file_get_contents('php://input') 去读取xml格式 然后转成数组即可
Ⅳ 读数据库之后循环生成XML的PHP怎么写
我的思路是,直接使用动态的xml,让flash读取这个文档,这样就不用实时的去生成xml文件了。当然,这个xml文件是.php格式的,所以你必须在flash中吧读取的文件地址改成php的,就跟你写一个php页面一样,不同的是这个php文件输出的内容是一个xml格式的文本。
比如你现在建立文件 xml.php
<?php
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<gallery>
<settings>";
//若此处也有动态信息 按需要进行调用
echo"</settings>
<items>";
//在此循环你的图片数据
$data = ??
while( $data ) {
echo "<item source=\"".$data['source']."\" description=\"".$data['description']."\" />";
}
echo '</items>';
?>
Ⅵ PHP读取xml的foreach问题
你好,解决方案:
发现你的逻辑没有分析清楚,一下是参考代码:
$roots = $doc->getElementsByTagName( "root" );
foreach($roots as $p=>$root){
$pros = $root->getElementsByTagName('province');
foreach ($pros as $c=>$pro) {
//$c 决定着几个省
echo $pro_name = $pros->item($c)->attributes->item(0)->nodeValue;
$citys = $pro->getElementsByTagName('city');
foreach($citys as $key=>$city){
//$key 决定着几个市
echo $city_name = $citys->item($key)->attributes->item(0)->nodeValue;
$dis = $city->getElementsByTagName('district');
foreach($dis as $d=>$district){
//$d 决定着几个区
echo $dis->item($d)->attributes->item(0)->nodeValue;
}
}
}
}
希望对你有所帮助!!
Ⅶ php中怎么调用xml文件
NEW DOMDOCUMENT();
Ⅷ php怎么解析从网页中获取的xml数据
先给你个以前写的读取xml格式的天气预报的代码吧,比着葫芦画瓢,不懂再追问
<?php
$apistr=file_get_contents("http://api.map..com/telematics/v2/weather?location=%E4%B8%8A%E6%B5%B7&ak=");//获取xml内容
$apiobj=simplexml_load_string($apistr);//解析xml代码
$todayobj=$apiobj->results->result[0]->date;//读取星期
$weatherobj=$apiobj->results->result[0]->weather;//读取天气
$windobj=$apiobj->results->result[0]->wind;//读取风力
$temobj=$apiobj->results->result[0]->temperature;//读取温度
$contentStr="上海 {$todayobj} 天气:{$weatherobj} 风力:{$windobj} 温度:{$temobj}";
echo$contentStr;
?>
Ⅸ 使用php循环出xml中多个相同重复的标签
重复的 xml 元素节点可以用 foreach 循环取出重复元素。
示例:
// $xmlData = file_get_contents('items.xml');
$xmlElement=simplexml_load_string($xmlData, 'SimpleXMLElement', 'LIBXML_NOCDATA');
$elements = $xmlElement->CustAcctId;
foreach ($elements as $element) {
var_mp($element);
}
提示:使用simplexml_load_string($xmlString, 'SimpleXMLElement', LIBXML_NOCDATA) 解析 xml 字符串,如果是 xml 文件,可以 file_get_contents 读取文件。