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就可以轻松的实现

转载于:https://www.cnblogs.com/hewenwu/articles/3414293.html

php中处理xml文件的类 simpleXML相关推荐

  1. android xml文件操作类,android操作xml

    android操作xml封装后的类,包括创建xml和读xml. public class XmlParserUtil { //创建xml文件 public static void createXmlF ...

  2. [转载]VC轻松解析XML文件 - CMarkup类的使用方法

    VC轻松解析XML文件 - CMarkup类的使用方法 VC解析XML文件的工具有很多,CMarkup, tinyXML,还有IBM的,MS的等等. 据说tinyXML很好,可能字符集问题,我编译不了 ...

  3. eclipse mysql Xml配置_mysql8.0在eclipse中通过xml文件配置数据库连接池

    mysql8.0在eclipse中通过xml文件配置数据库连接池 1.关于Mysql8.0 2.数据库连接池(DBCP) 3.准备工作 4.配置context.xml 5.配置web.xml 6.调用 ...

  4. 写了一个操作XML文件的类

    一个操作XML文件的类..部份功能在完善中~~~~ using System; using System.Collections.Generic; using System.Text; using S ...

  5. Tomcat中web.xml文件的详细说明

    Tomcat中web.xml文件的详细说明  <?xml version="1.0" encoding="GB2312"?> <!--  We ...

  6. android 构造xml,android 中生成xml文件

    在Android中生成xml文件真的很简单,下面提供2中方法,一种是通过String写入到文件,另外一种是通过XML 的 XmlSerializer. 以后遇到Android写xml内容就不会困惑了 ...

  7. dom4j工具类_基于DOM4J的XML文件解析类

    XML文件解析分四类方式:DOM解析:SAX解析:JDOM解析:DOM4J解析.其中前两种属于基础方法,是官方提供的平台无关的解析方式:后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于ja ...

  8. android的xml解析方式,Android中对xml文件解析的3种方式总结

    前言 xml 是数据传输的一种格式,Android 中的布局文件.设置文件等都采用它来表示.Android 中对 xml 文件的解析也有多种方式,下面介绍常用的 3 种方式: Dom . SAX 和 ...

  9. java xml 实体类_java中的xml与实体类之间的映射

    实体类: package xml; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class User ...

最新文章

  1. MS UC 2013-0-虚拟机-标准化-部署-3-虚拟机-生产
  2. 在Delphi程序中操作注册表
  3. 构建轻量级的Table View注意事项[UIKit]
  4. [HOW TO]-从github拉取optee代码拉不下来怎么办?
  5. Angular应用只执行指定单元测试的小技巧
  6. 7-9 用天平找小球 (10 分)
  7. mysql 403_mysql数据库管理phpmyadmin 403错误的解决方法
  8. VMWare学习总结(3)——Vmware Workstation 14虚拟机网卡桥接连不上网络解决方法
  9. SpiderKeeper的使用
  10. 一些必看的jQuery导航插件和教程
  11. java web主流框架整合开发 光盘_开发者突击:Java Web主流框架整合开发(第2版)(附CD光盘1张)...
  12. Day01-计算机入门
  13. codemirror TAB 缩进问题记录
  14. 史上最强百度网盘下载限速破解方法大全
  15. 沸腾新十年 | 中国语音产业江湖和科大讯飞的前半生
  16. 超声波及其传感器工作原理
  17. 简单将xml数据转换为txt数据
  18. linux系统下网络吞吐量/CPU占用率/流量控制的测试
  19. 微信小程序 -语音合成:将文字转为语音(小程序插件:微信同声传译)
  20. doNet面试宝典-常见整理(重复率高)

热门文章

  1. JS代码报错 Uncaught SyntaxError: Unexpected token ,
  2. 工作中总结的一些C#小经验,随时更新
  3. 当Elasticsearch遇见Kafka
  4. jenkins邮件通知功能
  5. 四大传值详解:属性传值,单例传值,代理传值,block传值
  6. Base64编码问题( Convert.ToBase64String)问题
  7. 配置GoldenGate源端Manager参数
  8. Typora markdown公式换行等号对齐_【精品软件 第3期】 有颜有料的编辑器——Typora
  9. html退出登录_[实战小剧场servletamp;jsp] 用户登录及退出功能实现
  10. python小乌龟行走轨迹_旋转傻乌龟——几何变换实践|python爬虫|python入门|python教程...