PHP中DOM操作

PHP中DOM操作

2017年01月15日 18:00:19 zhyoulun 阅读数:4365

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012314976/article/details/54563778

一个简单的例子

<?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 有坑
  • 1
$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>

参考

猜你喜欢

转载自blog.csdn.net/ljw5888/article/details/89449162
今日推荐