先是个简单的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文件中
//}
}