php之SimpleXml操作xml

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;

}

查询运行:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值