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 ...
随机推荐
- Codeforces H. Malek Dance Club(找规律)
题目描述: Malek Dance Club time limit per test 1 second memory limit per test 256 megabytes input standa ...
- c++练手项目:英语单词拼写测试程序
代码比较简单.基本的思路是从文本文件中按行读取数据,数据结构为“hello-你好”.前面是英语,后面是中文,中间用“-”连接.程序通过查找连词符的位置来分割中文和英文.再通过和用户输入的单词进行比较判 ...
- P4160 [SCOI2009]生日快乐[dfs]
题目描述 windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕. 现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕. win ...
- xml的运用
<?xml version="1.0" encoding="utf-8"?><class> <student> <na ...
- Object.create 以原对象为原型创建一个新对象
Object.create = function(o){ var Fun = function(){}; Fun.prototype = o; return new Fun(); } var peo ...
- 使用postman上传excel文件测试导入excel
今日思语:城市的生活很快,有时学会让自己慢下来,慢慢来 对于做一些文件上传操作时,一般我们是直接在前端页面加入类型为file的input标签,也可以使用postman来进行文件的上传测试,如下: po ...
- JS判断某变量是否为某数组中的一个值的3种方法
1.正则表达式 js 中判断某个元素是否存在于某个 js 数组中,相当于 PHP 语言中的 in_array 函数. 1 Array.prototype.in_array = function (e) ...
- LeetCode 1060. Missing Element in Sorted Array
原题链接在这里:https://leetcode.com/problems/missing-element-in-sorted-array/ 题目: Given a sorted array A of ...
- Redis的通用key操作
这些操作跟具体的类型没有关系,而是跟key相关. 1.查询Redis中的key的名称: 所有key: 以my开头: 2.删除键: 3.判断某一个键是否存在: 4.重命名: 5.设置过期时间: 如果未设 ...
- edgedb 开发环境运行
以下是一篇来自官方的edgedb 开发环境搭建说明,实际上我以前自己也摸索过一个,基本方法一样,一些是官方的做一个 简单的记录 预备工具 GNU make version 3.80 or newer; ...