PHP下进行XML操作(创建、读取)

PHP下可以使用DOMDocument类对XML或者HTML文件进行读写操作

更为简单的方法使用simpleXML类操作XML

DOM节点分为

  1. 元素节点
  2. 属性节点
  3. 值节点
  4. 注释节点
  5. 根节点(document才是根节点)

生成XML文件

<?xml version="1.0" encoding="utf-8"?>
<books>
    <book type="科幻小说">
        <name>三体0</name>
        <auth>刘慈欣</auth>
    </book>
    <book type="科幻小说">
        <name>三体1</name>
        <auth>刘慈欣</auth>
    </book>
</books>
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><books/>');    //创建根节点
for($i = 0 ; $i < 10 ; $i ++){
    $book = $xml -> addChild('book');     //添加子节点
    $book -> addAttribute('type','科幻小说');    //为子节点添加属性
    $book -> addChild('name','三体'.$i);    //创建值节点
    $book -> addChild('auth','刘慈欣');
}
$xml -> asXML('book.xml');    //保存

读取XML文件

$content = file_get_contents('book.xml');
$xml = new SimpleXMLElement($content);
// $xml中将xml文件转换成的数组,可以直接通过$xml->book访问其下节点
foreach ($xml -> book as $book) {
    $attr = $book -> attributes();    //返回的是一个数字
    echo $book -> name ;
    echo $book -> auth ;
    echo "</br>";
}

修改

$content = file_get_contents('book.xml');
$xml = new SimpleXMLElement($content);
// $xml中将xml文件转换成的数组,可以直接通过$xml->book访问其下节点
foreach ($xml -> book as $book) {
    $attr = $book -> attributes();    //返回的是一个数字
    $book -> name = "变形金刚";
}
$xml -> saveXML('book.xml');

删除

$content = file_get_contents('book.xml');
$xml = new SimpleXMLElement($content);
// $xml中将xml文件转换成的数组,可以直接通过$xml->book访问其下节点
for($i = count($xml -> book) - 1 ;$i >= 0 ; $i --){
    unset($xml -> book[$i]);
}
$xml -> saveXML('book.xml');
原文地址:https://www.cnblogs.com/xiaoliwang/p/8742569.html