在php中XML 的读,写,删除,修改的操作

来源:互联网 发布:手机淘宝怎样注册网店 编辑:程序博客网 时间:2024/06/15 02:43

先是个简单的xml文件:test.xml

<?xml version="1.0" encoding="GBK"?>
<bookstore>
   <book id="1">
     <title>书的标题一</title>
     <author>书的作者一</author>
   </book>
     <book id="2">
     <title>书的标题二</title>
     <author>书的作者二</author>
   </book>

</bookstore>

 

 

readXML.php

<?php
$dom=new DOMDocument();
$dom->load('Test.xml');
$books=$dom->getElementsByTagName('book');//获取标签为book的全部内容
//输出获取方式一:
foreach ($books as $k=>$v)//foreach中的键=>值
{
 echo $k."======ID:".$v->getAttribute('id')."[".$v->nodeValue."]";//getAttribute:获取属性;nodeValue:获取值
}
//输出获取方式二:
$title=$dom->getElementsByTagName('title');//获取标签为title的内容
$author=$dom->getElementsByTagName('author');//获取标签为author的内容
//输出第一行的数据:
echo "ID是".$books->item(0)->getAttribute('id')."</br>";
echo "title是".$books->item(0)->nodeValue."</br>";
echo "author是".$books->item(0)->nodeValue."</br>";
//输出第二行的数据:
echo "ID是".$books->item(1)->getAttribute('id')."</br>";
echo "title是".$books->item(1)->nodeValue."</br>";
echo "author是".$books->item(1)->nodeValue."</br>";
?>

 

writeXML.php

<?php
/*需要生成的,创建XML文档:
<?xml version="1.0" encoding="UTF-8"?>
<root>
 <index id="100"> content</index>
</root>
*/

$dom=new DOMDocument('1.0', 'UTF-8');//定义对象实例化DOMDocument类,生成的话需要带参数
$dom->formatOutput=TRUE;//格式化输出(标准规范格式)
/*准备数据(标签,属性,属性的值,标签里面的内容)*/
$root=$dom->createElement('root');//创建标签root
$index=$dom->createTextNode('index');
$id=$dom->createAttribute('id');//创建属性
$idv=$dom->createTextNode('100');//创建属性id的值
$indexContent=$dom->createTextNode("标签之间的文本内容");
/*建立XML  DOM文档的结构*/
$dom->appendChild($root);//在$dom对象的新建文档"$dom->formatOutput=TRUE;"下创建root节点
$root->appendChild($index);//在root节点下创建$index节点
$index->appendChild($id);//在$index里面创建属性$id
$id->appendChild($idv);//给属性$id创建值$idv;
$index->appendChild($indexContent);//在创建的$index标签内创建内容:$indexContent
$dom->save("writeXML.xml");//讲所建立的文档结构保存成xml文件;

modifyDelXML

<?php
/* <?xml version="1.0" encoding="UTF-8" ?>
- <bookstore>
- <book id="1"> <title>这里是标题1</title><author>张三</author></book>
- <book id="2"> <title>这里是标题2</title>  <author>李四</author> </book>
  </bookstore>
  */
/*修改和删除XML文件*/
$dom=new DOMDocument();
$dom->load('Test.xml');
//bookstore 相当于是表格,book id="1" 表示其中的行,id,title,author相当于字段
$books=$dom->getElementsByTagName('book');//获取所有标签为book的内容
foreach ($books as $k=>$v)
{
 //修改id=2的作者,把值换成:wangwu
   if($v->getAttribute('id')=='2')//先进行查找要操作的条件
   {
    //进行当前值的修改:先获取标签getElementByTagName 再找到id为2的那条记录:item(0)键->值 再进行修改:nodeValue
    $v->getElementsByTagName('author')->item(0)->nodeValue="wangwu";
    $dom->save('Test.xml');
   }
   //删除id=“1”的行(节点)
//      if($v->getAttribute('id')=='1'){//先进行查找要操作的条件
//    $root=$dom->documentElement;//获取id=1当中的所有的节点
//    $root->removeChild($v);//将$root下的节点进删除removeChild,删除的值是:$v
//    $dom->save('Test.xml');//修删完后将内容保存在xml文件中
//}
}

原创粉丝点击