php读写xml基于DOMDocument方法
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方法的更多相关文章
- C# 读写XML文件的方法
C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...
- win10 uwp 读写XML
UWP 对 读写 XML做了一些修改,但和之前 WPF 的方法没有大的区别. 我们先来说下什么是 XML , XML 其实是 树结构,可以表达复杂的结构,所以在定制要求高的.或其他方面如json 做不 ...
- PHP读写XML文件的四种方法
PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...
- PHP怎么读写XML?(四种方法)
PHP怎么读写XML?(四种方法) 一.总结 1.这四种方法中,字符串的方式是最原始的方法.SimpleXML和DOM扩展是属于基于树的解析器,把整个文档存储为树的数据结构中,需要把整个文档都加载到内 ...
- 三种读写XML的方法
XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...
- 在.net中序列化读写xml方法的总结
在.net中序列化读写xml方法的总结 阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命 ...
- C#_在.net中序列化读写xml方法的总结
阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数 ...
- (转)在.net中序列化读写xml方法的总结
阅读目录 开始 最简单的使用XML的方法 类型定义与XML结构的映射 使用 XmlElement 使用 XmlAttribute 使用 InnerText 重命名节点名称 列表和数组的序列化 列表和数 ...
- 在.net中序列化读写xml方法的总结--转载过来学习学习
原文章地址:http://www.cnblogs.com/fish-li/archive/2013/05/05/3061816.html 首先做个大概的总结,XML包括的元素有XmlElement,X ...
随机推荐
- 关于python模块总结
名词解释 模块(module):在python中,一个.py文件就是一个模块 包(package):为了避免模块名冲突,Python又引入了按目录来组织模块的方法.当目录下存在__init__.py, ...
- python代码规范 自动优化工具Black
自动优化工具Black 在众多代码格式化工具中,Black算是比较新的一个,它***的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让 Black 自己 ...
- WinForm 捕获异常 Application.ThreadException + AppDomain.CurrentDomain.UnhandledException
WinForm 捕获未处理的异常,可以使用Application.ThreadException 和AppDomain.CurrentDomain.UnhandledException事件 WinF ...
- socket mac终端调试工具 nc netcat
今天想学点socket ,因此搜索socket 工具,找到了netCat工具.可以打开两个终端window ,实现终端之间的socket的收发信息,为以后学习socket调试做准备用吧.两个终端分别打 ...
- Ubuntu 14.04.2升级openssh7.9
环境:Ubuntu 14.04.2 目的:openssh版本6.6升级为openssh7.9 准备以下3个包 http://www.zlib.net/ https://www.openssl.org/ ...
- 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 ...
- K3二次开发后台表
select * from icclasstype where fname_chs like '%供货%' 用此表基本上可以查询到所有的表 select * from POrequest --采购申请 ...
- java项目部署到LIINUX
天领导给个任务,把java项目部署到liunx服务器上.现记录步骤,方便以后查看.项目部署服务器步骤:服务器信息:弹性IP地址:xx.xx.xxx.xx账号:root密码:cjw@100 数据库信息: ...
- 微信小程序——选择某个区间的数字
很久没有更新文章啦~~记录下今天弄的一个小功能. 先上图: 需求很简单: 第1列改变的时候,第2列也随着改变,并且比第1列大1k. 这里用到了微信的picker 组件,对于不太熟练这个组件的小伙伴可以 ...
- CSPS_113
这场还是Dybala的差点AK场 可是我T3伪了只拿了20分 如果这... T1 xjb猜了个结论就过对拍 T2 鸡还儿竖+贪心 T3 正着贪心一遍,被卡了,只有20分 可是如果反着再来亿遍 就会有5 ...