SimpleXML是PHP5推出的一套新的XML处理函数,虽然只提供了少量几的几个方法函数,但它功能强大,操作简单。
SimpleXML函数
函数 | 描述 |
__construct() | 创建一个新的SimpleXMLElement对象 |
addAttribute() | 给SimpleXML元素添加一个属性 |
addChild() | 给SimpleXML元素添加一个子元素 |
asXML() | 从SimpleXML元素获取XML字符串 |
attributes() | 获取SimleXML元素的属性 |
children() | 获取指定节点的子 |
getDocNamespaces() | 获取XML文档的命名空间 |
getName() | 获取SImpleXML元素的名称 |
getNamespaces() | 从XML数据获取命名空间 |
registerXPathNamespace() | 为下一次XPath查询创建命名空间语境 |
Simplexml_import_dom() | 从DOM文档获取SimpleXMLElement对象 |
simplexml_load_file() | 从XML文档获取SimpleXMLElement对象 |
simple_xml_load_string() | 从XML字符串获取SimpleXMLElement对象 |
xpath() | 对XML数据运行Xpath查询 |
SimpleXML实例
实例一:
声明一个包含XML的字符串,通过simplexml对象的asXML()函数生成xml文件
<?php
//生成一个XML文件
//声明XML字符串
$_xml = <<<_xml
<?xml version="1.0" encoding="UTF-8"?>
<students>
<class grade="3年级">1班</class>
<student name="Cai">
<address>Guangdong</address>
<score>100</score>
</student>
<student name="Wu">
<address>Guangzhou</address>
<score>98</score>
</student>
<student name="Orange">
<address>China</address>
<score>101</score>
</student>
</students>
_xml;
//创建一个simplexml对象,传入XML字符串
$_sxe = new SimpleXMLElement($_xml);
//生成XML文件
$_sxe->asXML('test.xml');
?>
上述代码运行后将在项目文件目录下生成一个test.xml的文件,下面的代码也是在这个的基础上运行的。
临时写的XML文件可能有点奇奇怪怪的,客官们看得懂操作就行啦。[]~( ̄▽ ̄)~*
实例二:
使用simplexml_load_file()函数载入已存在的xml文件,并向浏览器输出(包含几种输出方式):
<?php
//载入xml文件
$_sxe=simplexml_load_file('test.xml');
//asXML()函数内不填写任何参数
//向浏览器输出输出载入的XML文件
echo $_sxe->asXML();
//其他几种输出的方式
//1.用数组的方式输出,看的更清晰
//print_r($_sxe);
//2.通过查看器打印所有信息
//var_dump($_sxe);
//3.通过反射的静态方法输出
//Reflection::export(new ReflectionClass($_sxe));
?>
实例三:
读取XML文件中一级标签的值:
<?php
//载入xml
$_sxe=simplexml_load_file('test.xml');
//读一级标签的值
echo $_sxe->class;
?>
读取XML文件中二级标签的值:
<?php
//载入xml
$_sxe=simplexml_load_file('test.xml');
//读二级标签
echo $_sxe->student->score;
?>
实例四:
读取XML文件中一级标签class下的属性grade的值:
<?php
//载入xml
$_sxe=simplexml_load_file('test.xml');
//输出第二个student的属性
echo $_sxe->class->attributes();
?>
实例五:
使用xpath来获取xml节点操作:
<?php
//使用xpath来获取xml节点操作
//载入xml
$_sxe= simplexml_load_file('test.xml');
//访问一级节点,获取class的值
$_class=$_sxe->xpath('/students/class');
echo $_class[0];
//访问二级节点
$_address=$_sxe->xpath('/students/student/address');
//print_r($_address);
//访问节点的属性
$_student=$_sxe->xpath('/students/student');
echo $_student[1]->attributes();
?>
比较常用的就这些啦,大概只要过一遍就能清楚些的是啥啦,很简单哦!
如果这篇文章对你有帮助的话请点帮我点个赞,让我知道我写的文章有帮助到他人哈哈哈,谢谢!