php simpleXML添加CDATA格式数据
代码
代码如下 | 复制代码 |
<?php |
PHP XML处理XML代码如下
代码如下 | 复制代码 |
<?xml version="1.0" encoding="UTF-8"?> <!-- Edited with XML Spy v2007 (http://www.altova.com) --> <breakfast_menu> <food id="1"> <name>Belgian Waffles</name> <price>$5.95</price> <description>two of our famous Belgian Waffles with plenty of real maple syrup</description> <calories>650</calories> </food> <food id="2"> <name>Strawberry Belgian Waffles</name> <price>$7.95</price> <description>light Belgian waffles covered with strawberries and whipped cream</description> <calories>900</calories> </food> <food id="3"> <name>Berry-Berry Belgian Waffles</name> <price>$8.95</price> <description>light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> <calories>900</calories> </food> </breakfast_menu> |
php解决xml代码
代码如下 | 复制代码 |
<html> <body> $xml = simplexml_load_file('./simple.xml'); |
将XML转换为数组结构
代码如下 | 复制代码 |
private function change_simple_xml_to_array($obj){
——————XML文档——————
Array [online_time] => 2 [1] => Array [2] => Array |
代码如下 | 复制代码 |
/* class xmlDom{ function __construct($xmlFile ='', $version ='1.0', $encoding = 'UTF-8'){ $test = new xmlDom('student.xml'); |
上面是使用了dom来操作,下面我们利用php中的SimpleXML来操作xml,也算是很标准的一个操作xml文档的类了。
simplexml_load_file(string filename)
这里的 filename变量是用于存储 XML数据文件的文件名及其所在路径。以下代码使用 simplexml_load_file函数来创建了一个 SimpleXML对象。
代码如下 | 复制代码 |
<?php |
其中,example.xml存储的数据与上面的$data完全相同,运行结果也与上面完全相同。
上面两种方法实现了同样的功能,其区别就在于 XML的数据源不同。如果 XML的数据源在 PHP脚本文件中,则需要使用 simplexml_load_string来进行创建。如果 XML的数据源在一个单独的 XML文件中,则需要使用 simplexml_load_file来进行创建。
读取 XML数据中的标签
与操作数组类型的变量类似,读取 XML也可以通过类似的方法来完成。例如,如果需要读取上面 XML数据中每一个“ depart”标签下的“name”属性,可以通过使用 foreach函数来完成,如以下代码
所示。
代码如下 | 复制代码 |
<?php $xml = simplexml_load_file(’example.xml’); foreach($xml->depart as $a) { echo “$a->name <BR>”; } ?> |
运行结果如下所示。
production support
testing center
//读取 XML文件 //循环读取 XML数据中的每一个 depart标签
//输出其中的 name属性
也可以使用方括号“ []”来直接读取 XML数据中指定的标签。以下代码输出了上面 XML数据中的第一个“depart”标签的“name”属性。
代码如下 | 复制代码 |
<?php $xml = simplexml_load_file(’example.xml’); //读取 XML文件 echo $xml->depart->name[0]; //输出节点 ?> |
运行结果如下所示。
production support
对于一个标签下的所有子标签,SimpleXML组件提供了 children方法进行读取。例如,对于上面的 XML数据中的“ depart”标签,其下包括两个子标签:“ name”和“employees”。以下代码实现了对第一个“depart”标签下的子标签的读取。
数组
代码如下 | 复制代码 |
$arr[] = array( 'name' => $row['name'], 'sex' => $row['sex'], 'age' => $row['age'] ); |
生成php
代码如下 | 复制代码 |
$doc = new DOMDocument('1.0', 'utf-8'); // 声明版本和编码 $doc->formatOutput = true; $doc->appendChild($r); $b = $doc->createElement("data"); $name->appendChild($doc->createTextNode($dat['name'])); $b->appendChild($name); $sex->appendChild($doc->createTextNode($dat['sex'])); $b->appendChild($sex); $age = $doc->createElement("age"); $age->appendChild($doc->createTextNode($dat['age'])); $b->appendChild($age); $r->appendChild($b); } |
这样就生成了一个xml文件了
解析xml文件也是非常的简单了
代码如下 | 复制代码 |
header("Content-type:text/html; Charset=utf-8"); $url = "createXML.php"; $reader = new XMLReader(); //实例化XMLReader $reader->open($url); //获取xml $i=1; while ($reader->read()) { if ($reader->nodeType == XMLReader::TEXT) { //判断node类型 $m = $i%3; if($m==1) $name = $reader->value; //读取node值 if($m==2) $sex = $reader->value; if($m==0){ $age = $reader->value; $arr[] = array( 'name' => $name, 'sex' => $sex, 'age' => $age ); } $i++; } } //print_r($arr); |
例1
代码如下 | 复制代码 |
<?php //Store your html into $html variable. $html="<html> <body> </html>"; $dom = new DOMDocument(); //Evaluate Anchor tag in HTML for ($i = 0; $i < $hrefs->length; $i++) { //remove and set target attribute $newURL=$url.".au"; //remove and set href attribute // save html echo $html; ?> |
例2
代码如下 | 复制代码 |
/*<?xml version="1.0" encoding="UTF-8" standalone="no"?> <学生 number="10"2"> $itemsNodeList = $xmldoc->getElementsbyTagName('学生'); //封装成函数 $data = getNodeVal($xmldoc, '学生', $nodeArr); |
相关文章
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
这篇文章主要介绍了基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23- 下面小编就为大家带来一篇C#中添加窗口的步骤详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要给大家分享的是pygame游戏进行声音添加的方法,这文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!...2021-10-23
- 美图秀秀是一款不错的图片处理软件了,最近看到很多的朋友喜欢把自己的照片处理成电影字幕效果了,下面我们来看看美图秀秀怎么给照片添加电影字幕吧,希望文章对各位有帮助...2016-09-14
- 一般空间商提供的服务器空间默认PHP 指令 magic_quotes_gpc是on的,也就是打开的。这时候就可以用stripslashes() 函数删除自动添加的反斜杠。用法就是:比如包含字符串的变量是$str,那么就用stripslashes() 函数处理一下...2013-10-04
- 这篇文章主要介绍了如何在.Net版本UEditor中添加一个普通按钮,需要的朋友可以参考下...2021-09-22
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
这篇文章主要介绍了JQuery EasyUI datagrid 添加、修改、删除操作的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-25- 这篇文章主要介绍了js动态添加带圆圈序号列表的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-18
- PS给绿色树林人物照片添加金色逆光效果文章中,将会教大家如何添加逆光效果,想要学习该技能的同学请看下文介绍。 素材图片有点逆光,只是背景比较杂乱,效果不是很好...2016-12-15
- 这篇文章主要介绍了在idea 中添加和删除模块Module操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-18
- 本文给大家分享javascript实现类名的添加与移除功能,需要的朋友参考下吧...2017-04-27
- 这篇文章主要介绍了Nginx批量添加二级子域名完美方案,本文讲解使用正则表达式批量匹配指定域名的二级域名虚拟主机,需要的朋友可以参考下...2016-01-27
tableView 上添加Tableview 实现左右滑动功能
本文章来为各位介绍一个关于tableView 上添加Tableview 实现左右滑动功能例子,希望这个例子可以帮助到各位android开发者吧。 有时候我们在使用tableView 的时候不...2016-09-20- PHP 提供了 simplexml_load_string 方法用来解析 XML 格式的字符串,并返回 SimpleXMLElement 对象。不过一般数组是更为适用的,所以也会有转换为普通数组的需求,这个方法...2016-11-25
- 为了让照片看上去很仙,可以添加一些云雾,给人一种人间仙境的感觉。具体该怎么添加呢?下面我们就来看看详细的教程。 1、打开所用素材(美女和烟雾)2、在的烟雾的图片中,...2017-01-22
- 今天小编在这里给大家说说用photoshop的这一款软件给草坪边的人物加上较暗的晨曦阳光效果的制作教程,各位想知道制作方法的,那么下面就快来跟着小编一起看下吧。 ...2016-09-14
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
这篇文章主要介绍了基于Bootstrap使用jQuery实现输入框组input-group的添加与删除的相关资料,需要的朋友可以参考下...2016-05-05在ASP.NET 2.0中操作数据之六十四:GridView批量添加数据
前面介绍了批量更新,批量删除数据,这篇文章主要介绍如何实现批量添加数据,当然为了保证数据的完整性,我们在做这些批量操作的时候,都使用了事务来实现。...2021-09-22- 我们早已知道,网站的质量在Google中起关键作用。高级Google工程师Matt Cutts在他的blog中多次提到,“优质”对于Google至关重要,无论是内容还是连接。 不...2016-09-20
- 有时候为了界面的美观,可能需要添加第三方的字体库,那该如何实现呢?这篇文章主要给大家介绍了关于iOS手动添加新字体的步骤和踩坑的相关资料,需要的朋友可以参考下...2021-08-11