1,首先来创建一个xml文档(xiawei.xml):
<?xml version="1.0" encoding="UTF-8"?>
<bookshop>
<books>
<bookType>
<name>计算机方面的书</name>
<book>
<name>JAVA语言程序设计</name>
<price>100</price>
<author>夏威</author>
</book>
<book>
<name>C语言程序设计</name>
<price>80</price>
<author>谭浩强</author>
</book>
</bookType>
<bookType>
<name>英语方面的书</name>
<book>
<name>新概念英语</name>
<price>80</price>
<author>亚历山大</author>
</book>
</bookType>
</books>
</bookshop>
2.创建一个SimpleXML对象,如果要从一个字符串中读取XML数据并创建对象,用simplexml_load_string (string data)方法。但是在这里我们直接从xiawei.xml这个xml文件中获取xml信息,我们用simplexml_load_file(String filename)方法,创建一个php文件test.php:
<?php
header("Content-type:text/html;charset=utf-8");
$xml = simplexml_load_file("xiawei.xml");//创建一个SimpleXML对象
echo $xml->asXML();//将该对象以标准的xml形式输出
?>
3.
//遍历所有bookType下面的name属性
foreach ($xml->books->bookType as $bt){
echo $bt->name."<br/>";
}
4.//层层遍历,以遍历所有书的名字为例子
foreach ($xml->books as $books){
foreach ($books->bookType as $bt){
foreach ($bt->book as $book){
echo $book->name."<br/>";
}
echo "<br/>";
}
}
运行结果:
5.基于 XML数据路径的查询:
$result = $xml->xpath("books/bookType/book/author");
var_dump($result);
结果:
6,动态创建一个xml文档:
<?php
//创建一个新的 DOM文档
$dom = new DomDocument();
//在根节点创建 departs标签
$departs = $dom->createElement('departs');
$dom->appendChild($departs);
//在 departs标签下创建 depart子标签
$depart = $dom->createElement('depart');
$departs->appendChild($depart);
//在 depart标签下创建 employees子标签
$employees = $dom->createElement('employees');
$depart->appendChild($employees);
//在 employees标签下创建 employee子标签
$employee = $dom->createElement('employee');
$employees->appendChild($employee);
//在 employee标签下创建 serial_no子标签
$serial_no = $dom->createElement('serial_no');
$employee->appendChild($serial_no);
//为 serial_no标签添加值节点 100001
$serial_no_value = $dom->createTextNode('100001');
$serial_no->appendChild($serial_no_value);
//输出 XML数据
echo $dom->saveXML();
?>
结果输出:
来源:https://www.cnblogs.com/xiawei-blogs/archive/2011/12/21/php_xml.html