• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php中处理xml文件的类simpleXML

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


1
<?php
2 header("Content-Type:text/html;charset=utf-8");//此处必须输出html编码格式,虽然后面会输出xml的编码格式,但是这里的格式依然不能少 3 /*第一种方法*/ 4 $xml_1=simplexml_load_file("5.xml"); 5 print_r($xml_1); 6 7 /*第二种方法: 8 这个方法里面用到了定界符,定界符里面有个‘?>’符号,开始还担心会不会影响后面的内容,后来测试了一下,并不影响 9 */ 10 $str=<<<XML 11 <?xml version="1.0" encoding="gb2312"?> 12 <php> 13 <a> 14 <b>实验1</b> 15 </a> 16 </php> 17 XML; 18 $xml_2=simplexml_load_string($str); 19 echo "<br>"; 20 print_r($xml_2); 21 22 /*第三种方法*/ 23 $dom=new domDocument();//这里生成了一个domDocument 24 $dom->loadXML($str); 25 $xml_3=simplexml_import_dom($dom); 26 echo "<br>"; 27 print_r($xml_3); 28 ?>

以上是用simplexml来创建xml文件。

接下来是用simplexml来遍历xml文件

<?php
header("Content-Type:text/html;charset=utf-8");
$str=<<<XML
<?xml version="1.0" encoding="gb2312"?>
<php>
<a>
<c>实验0</c>
<b>实验1</b>
</a>
<a>
<c>实验2</c>
<b>实验3</b>
</a>
</php>
XML;
$xml_2=simplexml_load_string($str);

/*遍历xml,要理解children()方法*/
foreach($xml_2->children() as $layer_one){
print_r($layer_one);echo "<br>";
foreach($layer_one->children() as $layer_two){
print_r($layer_two);echo  "<br>";}

}
?>


用simplexml遍历所有的属性

<?php
header("Content-Type:text/html;charset=utf-8");
$str=<<<XML
<?xml version="1.0" encoding="gb2312"?>
<php name='book'>
<a type='a'>
<c>实验0</c>
<b>实验1</b>
</a>
<a type='b'>
<c>实验2</c>
<b>实验3</b>
</a>
</php>
XML;
$xml_2=simplexml_load_string($str);

/*遍历xml,要理解children()方法*/
foreach($xml_2->children() as $layer_one){
foreach($layer_one->attributes() as $name=>$vl){
echo $name."::".$vl;
}
echo "<br>";
foreach($layer_one->children() as $layer_two){
foreach($layer_two->attributes() as $name=>$vl){
echo $name."::".$vl;
}
echo  "<br>";}

}
?>

 

 

访问特定节点的元素和属性

<?php
header("Content-Type:text/html;charset=utf-8");
$str=<<<XML
<?xml version="1.0" encoding="gb2312"?>
<php name='book'>
<a type='a'>
<c>实验0</c>
<b>实验1</b>
</a>
<a type='b'>
<c>实验2</c>
<b>实验3</b>
</a>
</php>
XML;
$xml_2=simplexml_load_string($str);
echo $xml_2[name]."<br>";//输出根元素的属性name
echo $xml_2->a[0]->c;
echo $xml_2->a[1]->b;
?>

 

修改和保存xml

<?php
header("Content-Type:text/html;charset=utf-8");
$str=<<<XML
<?xml version="1.0" encoding="gb2312"?>
<php name='book'>
<a type='a'>
<c>实验0</c>
<b>实验1</b>
</a>
<a type='b'>
<c>实验2</c>
<b>实验3</b>
</a>
</php>
XML;
$xml_2=simplexml_load_string($str);

/*修改xml文档的值*/
$xml_2->a[0]->c='实验4';//此处是修改元素的值
$xml_2->a[1]['type']='x';//注意此处修改第二个节点的type值的方法
print_r($xml_2);
?>


可以看到,使用simplexml来操纵xml是非常方便的,但是他的缺点就是不能动态的创建xml文档,DOM就可以轻松的实现


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DedeCMSError:(PHP5.3andabove)Pleasesetrequest_order发布时间:2022-07-10
下一篇:
php使用solr全文搜索引擎发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap