PHP通过DOMDocument操作解析xml

1.xml概念可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言2.xml和html的区别a.可扩展性:xml可以自己定义新的标记,而html都是已规定的标记b.数据和显示:xml数据和显示是分离的,html是整合在一起c.侧重点:xml用来描述数据结构,html用来如何表现数据(各种规定的样式和标签)d.语法:xml严格要求嵌套和配对,html不要求3.xml主要是为了传输数据,而不是为了显示数据4.语法规范:a.任何起始标签都必须有一个结束标签,,即配对闭合<root></root>b.标签不能互相嵌套错误:<root><a></root></a>正确:<root><a></a></root>c.属性必须有值,且属性值必须用引号包含起来如:<root><a attr=’wyz’></a></root>d.特殊字符要用实体符号来替换如:> 用 &gt;‘’用&quot

注:如果有大段文本包含特殊字符,可以用CDATA(微信开发xml就有这个东东)来存放

XML文件

<?xml version="1.0" encoding="UTF-8"?><books><book><name>php高级编程</name><price>12</price></book><book><name>php低级编程</name><price>11</price></book></books>

DOM解析XML

$dom = new DOMDocument('1.0', 'utf-8');//创建DOM解析对象$dom->load('book.xml');//载入解析文档文件$books = $dom->getElementsByTagName('book');//得到所有书本的DOMNodeList对象列表//获取节点内容echo '有几本书:'.$books->length."<br/>";foreach ($books as $book){$bookname = $book->getElementsByTagName('name');//得到书本的名称DOMNodeList对象列表$bookprice = $book->childNodes->item(3);//得到书本的价格DOMElement对象,childNodes包含换行节点echo 'bookname:'.$bookname->item(0)->nodeValue."<br/>";echo 'bookprice:'.$bookprice->nodeValue.'<br/>';// $bookprice->nodeValue = 15; //修改节点内容}//添加节点内容$cbook = $dom->createElement('book');$cbookname = $dom->createElement('name');$cbookname_text = $dom->createTextNode('php中级编程');$cbookname->appendChild($cbookname_text);$cbook->appendChild($cbookname);$dom->getElementsByTagName('books')->item(0)->appendChild($cbook);//删除节点内容$book3 = $dom->getElementsByTagName('book')->item(2);//获取对象DOMElement对象$book3->parentNode->removeChild($book3);//根据父亲节点对象移除获取的子DOMElement对象$dom->save('book.xml');注:php还可以通过SimpleXMLElement和DOMXPath解析。XPath可以快速读取节点文本数据,大数据读取可以考虑。

什么天荒地老,什么至死不渝。都只是锦上添花的借口…

PHP通过DOMDocument操作解析xml

相关文章:

你感兴趣的文章:

标签云: