您的位置:首页 > 编程语言 > PHP开发

php之SimpleXml操作xml

2016-05-18 23:41 686 查看
bookstore.xml

<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>


1.添加

<?php
$sxe  = simplexml_load_file('bookstore.xml');

//添加book节点
$new_book = $sxe->addChild('book');
//book节点添加属性
$new_book->addAttribute('category','武侠');

//book节点下添加节点
$new_title = $new_book->addChild('title','神雕侠侣');
$new_title->addAttribute('lang','zh-cn');

$new_autor = $new_book->addChild('autor','金庸');
$new_year = $new_book->addChild('year','1980');
$new_price = $new_book->addChild('price','8');

//保存到指定文件
$sxe->asXML('sxe_insert.xml');


观察$sxe对象:

$sxe  = simplexml_load_file('bookstore.xml');
var_dump($sxe);




2.删除

<?php
$sxe  = simplexml_load_file('bookstore.xml');

//删除所有price节点
foreach ($sxe->book as $book){
unset($book->price);//删除对象的属性
}
$sxe->asXML('sxe_delete.xml');


3.修改

<?php
$sxe  = simplexml_load_file('bookstore.xml');

//所有书价格打八折
foreach ($sxe->book as $book){
$book->price *=0.8;
}
$sxe->asXML('sxe_update.xml');


4.查询

<?php
//三种创建方式
// simplexml_load_file($filename)
// simplexml_load_string($data)
$sxe  = simplexml_load_file('bookstore.xml');
$table = '';
$table.= "<table border='1'>";
$table.= "<tr><th>title</th><th>author</th><th>year</th><th>price</th></tr>";
//获取所有book节点的信息
foreach ($sxe->book as $book){
$table.="<tr>";
$table.="<td>{$book->title}</td>";
$table.="<td>{$book->author}</td>";
$table.="<td>{$book->year}</td>";
$table.="<td>{$book->price}</td>";
$table.="</tr>";
}

$table.= "</table>";

echo  $table;

//获取第一个book节点的属性
foreach($sxe->book[0]->attributes() as $k=>$v){
echo $k,'=',$v;

}


查询运行:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: