1.读xml内容:

xml文件plays.xml文档结构:

<?xml version="1.0" encoding="UTF-8"?>
<Plays>
<play>
<title id="001">rabits</title>
<author>tom</author>
<date>2015.1.2</date>
<addr>Beijing Fengtai Juyuan</addr>
</play>
<play>
<title id="002">Mom's Love</title>
<author>Jim</author>
<date>2015.4.5</date>
<addr>Beijing haiding Juyuan</addr>
</play>
</Plays>

php xml文档读操作:

<?php
$doc = new DOMDocument();
$doc->load("plays.xml");
$plays = $doc->getElementsByTagName("play"); /**
* xml文档读取
*/
echo '<strong style="color:red">文档读取:</strong><br>';
foreach( $plays as $play )
{
$titles = $play->getElementsByTagName("title");
$title = $titles->item(0)->nodeValue;
$authors = $play->getElementsByTagName("author");
$author = $authors->item(0)->nodeValue;
echo "$title - $author <br>";
} echo "<hr>"; /**
* xml文档属性读取
*/
echo '<strong style="color:red">文档属性读取:</strong><br>'; //首先建立一个DOMDocument对象
$xml = new DOMDocument();
//加载XML文件
$xml->load("plays.xml");
//获取所有的play标签
$play = $xml->getElementsByTagName("play");
foreach($play as $post)
{
$title = $post->getElementsByTagName("title");
echo "Title Id: " . $title->item(0)->attributes->item(0)->nodeValue ."<br />";
}
?>

表1 DOMDocument提供的读文档常用属性

2.xml文档写操作:

<?php
$local_array=array(
array("pid"=>"1", "name"=>"kitty","sex"=>"female"),
array("pid"=>"2", "name"=>"tom","sex"=>"male"),
); //创建新的XML文档
$doc = new DomDocument('1.0');
// 创建根节点
$root = $doc->createElement('root');
$root = $doc->appendChild($root); foreach ($local_array as $a)
{
$table_id = 'person'; //元素名称
$occ = $doc -> createElement($table_id); //创建元素
$occ = $root -> appendChild($occ); //加入元素
$fieldname = 'pid'; //值
$child = $doc -> createElement($fieldname); //创建元素
$child = $occ -> appendChild($child); //加入值
$fieldvalue = $a["pid"];
$value = $doc -> createTextNode($fieldvalue);
$child -> appendChild($value); $fieldname = 'name';
$child = $doc -> createElement($fieldname);
$child = $occ -> appendChild($child); /**
* xml属性写入方法
*/
$child -> setAttribute('attr1', 'attr1Value');
$child -> setAttribute('attr2', 'attr2Value'); $fieldvalue = $a["name"];
$value = $doc -> createTextNode($fieldvalue);
$child -> appendChild($value); $fieldname = 'sex';
$child = $doc -> createElement($fieldname);
$child = $occ -> appendChild($child);
$fieldvalue = $a["sex"];
$value = $doc -> createTextNode($fieldvalue);
$child -> appendChild($value);
} $xml_string = $doc -> saveXML();
file_put_contents("file.xml", $xml_string);
echo $xml_string; ?>

程序生成的xml文档结构如下:

<?xml version="1.0"?>
<root>
<person>
<pid>1</pid>
<name attr1="attr1Value" attr2="attr2Value">kitty</name>
<sex>female</sex>
</person>
<person>
<pid>2</pid>
<name attr1="attr1Value" attr2="attr2Value">tom</name>
<sex>male</sex>
</person>
</root>

表2 DOMDocument提供的常用写方法

php读写xml基于DOMDocument方法的更多相关文章

  1. C# 读写XML文件的方法

    C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...

  2. win10 uwp 读写XML

    UWP 对 读写 XML做了一些修改,但和之前 WPF 的方法没有大的区别. 我们先来说下什么是 XML , XML 其实是 树结构,可以表达复杂的结构,所以在定制要求高的.或其他方面如json 做不 ...

  3. PHP读写XML文件的四种方法

    PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...

  4. PHP怎么读写XML?(四种方法)

    PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...

  5. 三种读写XML的方法

    XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...

  6. 在.net中序列化读写xml方法的总结

    在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命 ...

  7. C#_在.net中序列化读写xml方法的总结

    阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数 ...

  8. (转)在.net中序列化读写xml方法的总结

    阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数 ...

  9. 在.net中序列化读写xml方法的总结--转载过来学习学习

    原文章地址:http://www.cnblogs.com/fish-li/archive/2013/05/05/3061816.html 首先做个大概的总结,XML包括的元素有XmlElement,X ...

随机推荐

  1. 关于python模块总结

    名词解释 模块(module):在python中,一个.py文件就是一个模块 包(package):为了避免模块名冲突,Python又引入了按目录来组织模块的方法.当目录下存在__init__.py, ...

  2. python代码规范 自动优化工具Black

    自动优化工具Black 在众多代码格式化工具中,Black算是比较新的一个,它***的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让 Black 自己 ...

  3. WinForm 捕获异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException

     WinForm 捕获未处理的异常,可以使用Application.ThreadException 和AppDomain.CurrentDomain.UnhandledException事件 WinF ...

  4. socket mac终端调试工具 nc netcat

    今天想学点socket ,因此搜索socket 工具,找到了netCat工具.可以打开两个终端window ,实现终端之间的socket的收发信息,为以后学习socket调试做准备用吧.两个终端分别打 ...

  5. Ubuntu 14.04.2升级openssh7.9

    环境:Ubuntu 14.04.2 目的:openssh版本6.6升级为openssh7.9 准备以下3个包 http://www.zlib.net/ https://www.openssl.org/ ...

  6. CentOS7.6编译安装redis5.0

    yum install gcc wget http://download.redis.io/releases/redis-5.0.0.tar.gz tar xvf redis-5.0.0.tar.gz ...

  7. K3二次开发后台表

    select * from icclasstype where fname_chs like '%供货%' 用此表基本上可以查询到所有的表 select * from POrequest --采购申请 ...

  8. java项目部署到LIINUX

    天领导给个任务,把java项目部署到liunx服务器上.现记录步骤,方便以后查看.项目部署服务器步骤:服务器信息:弹性IP地址:xx.xx.xxx.xx账号:root密码:cjw@100 数据库信息: ...

  9. 微信小程序——选择某个区间的数字

    很久没有更新文章啦~~记录下今天弄的一个小功能. 先上图: 需求很简单: 第1列改变的时候,第2列也随着改变,并且比第1列大1k. 这里用到了微信的picker 组件,对于不太熟练这个组件的小伙伴可以 ...

  10. CSPS_113

    这场还是Dybala的差点AK场 可是我T3伪了只拿了20分 如果这... T1 xjb猜了个结论就过对拍 T2 鸡还儿竖+贪心 T3 正着贪心一遍,被卡了,只有20分 可是如果反着再来亿遍 就会有5 ...