PHPsimpleXML

PHP5以上提供了一个simpleXML对象来操作XML,把XML的节点换成靶子及多次组去操作。

基本思路:将xml字符串转化成为靶子同数组。

查询

<?php
//将xml字符串转化成对象及数组
$xml=  file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串
$simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点
//1、查询
echo "<table width='400' border='1'>";
foreach ($simple->book as $book){
    $attr=$book->attributes();
    echo"<tr>";
    echo "<td>".$book->name."</td>";
    echo "<td>".$book->price."</td>";
    echo "<td>".$attr['type']."</td>";//获取节点的属性
    echo "</tr>";
}
echo "</table>";

添加

<?php
//将xml字符串转化成对象及数组
$xml=  file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串
$simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点
//添加,simplexml目前还没有找到格式化的方法。
$book=$simple->addChild('book');//$simple相当于根节点,即代表books,在根下写book节点
$book->addChild('name','C++');
$book->addChild('price','11');
$book->addAttribute('type','动态语言');
$simple->saveXML('books.xml');//$simple->asXML('books.xml');和$simple->saveXML('books.xml');一样,都是保存的意思

更新

<?php
//将xml字符串转化成对象及数组
$xml=  file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串
$simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点
foreach ($simple->book as $book){
    $book->name.='-北京出版社';//相当于$book->name=$book->name.'-北京出版社';
}
$simple->saveXML('books.xml');

删去,从后为前去除

<?php
//将xml字符串转化成对象及数组
$xml=  file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串
$simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点
($i=count($simple->book)-1;$i>=0;$i--){
    $currenbook=$simple->book[$i];//当前图书
    $attr=$currenbook->attributes();
    if($attr['type']=='动态语言'){
        unset($simple->book[$i]);//unset销毁当前变量
    }

} 
$simple->saveXML('books.xml');

 

相关文章