使用DOMDocument是PHP中处理HTML和XML文档的一种常用方法,可以通过DOMDocument类来解析、创建和修改具有节点、元素、属性和文本等内容的文档。下面将详细讲解如何使用DOMDocument来处理HTML、XML文档的示例攻略。
1. 创建DOMDocument对象
首先要创建一个DOMDocument对象,可以通过调用该类的构造函数来创建。在创建DOMDocument对象时,可以指定版本号和编码格式。
// 创建DOMDocument对象
$dom = new DOMDocument('1.0', 'utf-8');
2. 加载HTML、XML文档
加载HTML、XML文档可以使用load()方法或loadHTML()方法。具体使用哪个方法取决于文档类型,若是HTML文档,可以使用loadHTML()方法;若是XML文档,需要使用load()方法。
// 加载HTML文档
$html = "<html><head><title>DOMDocument测试</title></head><body><h1>测试标题</h1><p>测试内容</p></body></html>";
$dom->loadHTML($html);
// 加载XML文档
$xml = <<<EOF
<?xml version="1.0" encoding="utf-8"?>
<root>
<person>
<name>张三</name>
<age>18</age>
</person>
<person>
<name>李四</name>
<age>20</age>
</person>
</root>
EOF;
$dom->loadXML($xml);
3. 遍历节点、元素和属性
DOMDocument对象可以通过访问节点、元素和属性的属性和方法来进行遍历。可以使用getElementsByTagName()方法、childNodes属性、attributes属性等来获取节点、元素和属性。
// 遍历HTML文档
$dom_h1 = $dom->getElementsByTagName('h1')[0];
$text_h1 = $dom_h1->nodeValue; // 获取节点文本
$dom_p = $dom->getElementsByTagName('p')[0];
$text_p = $dom_p->nodeValue;
echo "h1节点的文本为:$text_h1,p节点的文本为:$text_p";
// 遍历XML文档
$dom_root = $dom->getElementsByTagName('root')[0];
$persons = $dom_root->childNodes;
foreach ($persons as $person) {
$name = $person->getElementsByTagName('name')[0]->nodeValue;
$age = $person->getElementsByTagName('age')[0]->nodeValue;
echo "姓名:$name,年龄:$age\n";
}
4. 创建和修改元素及属性
可以通过DOMDocument对象创建和修改元素及属性,使用createElement()方法创建元素,使用setAttribute()方法设置属性,使用appendChild()方法添加元素节点等。
// 创建HTML元素
$new_p = $dom->createElement('p', '这是新的段落节点');
$dom->getElementsByTagName('body')[0]->appendChild($new_p);
// 修改XML元素
$new_person = $dom->createElement('person');
$new_name = $dom->createElement('name', '王五');
$new_age = $dom->createElement('age', '22');
$new_person->appendChild($new_name);
$new_person->appendChild($new_age);
$dom_root->appendChild($new_person);
通过以上攻略,我们可以了解到使用DOMDocument类可以轻松地处理HTML、XML文档,包括文档的遍历、创建、修改和删除等操作。对于文档的处理,DOMDocument是PHP中一个非常强大的工具。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP中使用DOMDocument来处理HTML、XML文档的示例 - Python技术站