PHP中DOM操作

来源:互联网 发布:godaddy 转入阿里云 编辑:程序博客网 时间:2024/05/18 02:53

一个简单的例子

<?php//初始化一个DOMDocument$xml = new DOMDocument('1.0','UTF-8');//创建一个tag名为people的Element,并添加到DOMDocument中$people = $xml->createElement('people');$xml->appendChild($people);//创建一个tag名为person、值为lily、并带有一个属性id=101的Element,最后添加到people的Element中$person1 = $xml->createElement('person','lily');$people->appendChild($person1);$person1->setAttribute('id',101);//创建一个tag名为person、值为lucy、并带有一个属性id=102的Element,最后添加到people的Element中$person2 = $xml->createElement('person','lucy');$people->appendChild($person2);$person2->setAttribute('id',102);echo $xml->saveXML();

创建结点

CDATASectionCommentTextNode

<?php$xml = new DOMDocument('1.0','UTF-8');$people = $xml->createElement('people');$xml->appendChild($people);$person1 = $xml->createElement('person');$people->appendChild($person1);$person1->setAttribute('id',101);$name = $xml->createElement('name','lily');$person1->appendChild($name);//CDATA$cdata = $xml->createCDATASection('cdata cdata cdata cdata');$person1->appendChild($cdata);//评论$comment = $xml->createComment('comment comment comment');$person1->appendChild($comment);//文本$textNode = $xml->createTextNode('text text text text');$person1->appendChild($textNode);$person2 = $xml->createElement('person');$people->appendChild($person2);$person2->setAttribute('id',102);$name = $xml->createElement('name','lucy');$person2->appendChild($name);$xml->save('1.xml');echo $xml->saveXML();

查找

  • getElementById,通过ID查找一个
  • getElementByTagName,通过tag名称查找多个
getElementById 有坑
$xml = new DOMDocument();$xml->load('1.xml');$nodeList = $xml->getElementsByTagName('person');foreach ($nodeList as $node){    /** @var DOMNode $node */    echo $node->getNodePath()."\n";}输出/people/person[1]/people/person[2]

读取

  • loadXML,从字符串中读取XML
  • load, 从文件中读取XML
  • loadHTML,从字符串中读取HTML
  • loadHTMLFile,从文件中读取HTML

例子

$xml = new DOMDocument();$xml->load('1.xml');echo $xml->saveXML();

保存

$xml->save(‘out.xml’)

输出结果到文件中

<?xml version="1.0" encoding="UTF-8"?><people><person id="101">lily</person><person id="102">lucy</person></people>

echo $xml->saveXML()

输出结果到控制台中

<?xml version="1.0" encoding="UTF-8"?><people><person id="101">lily</person><person id="102">lucy</person></people>

echo $xml->saveHTML()

输出结果到控制台中

<people><person id="101">lily</person><person id="102">lucy</person></people>

echo $xml->saveHTMLFile(‘out.html’)

输出结果到文件中

<people><person id="101">lily</person><person id="102">lucy</person></people>

参考

  • The DOMDocument class
0 0
原创粉丝点击