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. centos7最小安装后无法联网解决方法

    1 进入目录 cd /etc/sysconfig/network-scripts/ # 编辑网卡的配置文件 # 多网卡会对应多个配置文件,均以ifcfg-enp开头 # 新环境配置可任意选择,建议按一 ...

  2. LeetCode初级算法--其他01:位1的个数

    LeetCode初级算法--其他01:位1的个数 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net ...

  3. 【转载】lr运行时设置,每个action 比例

    提供了再脚本运行时所需要的相关选项. 性能测试的关键之一:能否通过脚本来完全模拟用户的行为,可以通过运行设置让脚本运行的更人性化. 1. Run Logic 脚本如何运行,每个action与actio ...

  4. 5 Successful Business Models for Web-Based Open-Source Projects

    https://handsontable.com/blog/articles/2016/3/5-successful-business-models-for-web-based-open-source ...

  5. 树莓派linux shell

    ls命令用来显示目录下有哪些文件和文件夹 pi@raspberry ~ $ ls 蓝色表示文件夹 白色是文件 ls -R列出所有文件夹的内容(R表示递归) ls -l 查看详细信息 包括文件权限 最后 ...

  6. [Algorithm] BFS vs DFS

    //If you know a solution is not far from the root of the tree: BFS, because it is faster to get clos ...

  7. c# NPOI aspx导出数据

    public static class XSSFWorkbook_Excel { /// <summary> /// GetExcel /// </summary> /// & ...

  8. 关于H5判定区域里面滑动到底部,加载更多的总结

    1.如何判定H5中滑动到底部,然后加载更多的功能实现. 思路:我们需要设定一个固定高度的盒子,然后我们利用scroll来监听滚动,当scrollTop(滚动的距离) + clientHeight(页面 ...

  9. prisma mongodb 试用

    prisma 已经支持mongodb了,我们需要做的就是安装新版本的prisma cli,后然初始化项目使用 环境准备 安装cli 注意使用新版本(prisma/1.32.2) 低版本有坑 npm i ...

  10. HTML音乐标签和滚动

    <!-- 音乐标签 --> <embed src="1.mp3" type=""> <embed src="1.mp3& ...