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

时间:2023-03-10 07:16:17
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');