PHP函数之DOM解析:用PHP函数解析XML与HTML文档
PHP中DOM解析器是一种非常强大的解析器,它可以用来解析XML文档和HTML文档。DOM(Document Object Model)解析器是一种轻量级的、快速的、可编程的解析器。DOM解析器将整个XML文档作为一个整体进行解析,将文档中每个节点都转换为一个对象,这些对象之间的关系呈现父子关系。
在PHP中,我们可以使用DOM解析器来解析XML或HTML文档,并对文档中的内容进行检索、修改、删除或添加。DOM解析器可以非常方便地操作文档对象,因此很受PHP开发人员的欢迎。
下面我们来看一下如何使用PHP中的DOM函数来解析XML和HTML文档。
1. 解析XML文档
我们可以使用PHP中的DOMDocument类来解析XML文档。
//创建一个DOM对象
$dom = new DOMDocument();
//打开XML文件
$dom->load('sample.xml');
//获取所有的<book>元素
$books = $dom->getElementsByTagName('book');
//遍历每个<book>元素,并获取其中的title元素
foreach ($books as $book) {
//获取title元素
$title = $book->getElementsByTagName('title')->item(0)->nodeValue;
echo $title . "
";
}
在上面的例子中,我们首先创建了一个DOMDocument对象,然后使用load()方法打开一个XML文件,并将它加载到DOM对象中。接着,我们使用getElementsByTagName()方法获取所有的<book>元素,然后遍历每个<book>元素,并使用getElementsByTagName()方法获取其中的<title>元素。
2. 解析HTML文档
如果要解析HTML文档,我们需要使用PHP中的DOMDocument类的一个特殊版本:DOMDocument对象。
//创建一个DOM对象
$dom = new DOMDocument();
//打开HTML文件
$dom->loadHTMLFile('sample.html');
//获取所有的<img>元素
$images = $dom->getElementsByTagName('img');
//遍历每个<img>元素,并获取其中的src属性
foreach ($images as $image) {
//获取src属性
$src = $image->getAttribute('src');
echo $src . "
";
}
在上面的例子中,我们首先创建了一个DOMDocument对象,然后使用loadHTMLFile()方法打开一个HTML文件,并将它加载到DOM对象中。接着,我们使用getElementsByTagName()方法获取所有的<img>元素,然后遍历每个<img>元素,并使用getAttribute()方法获取其中的src属性。
DOM解析器是一个非常强大的解析器,它可以方便地操作文档对象,对文档中的内容进行检索、修改、删除或添加。在实际开发中,我们可以根据具体需求来灵活使用DOM解析器,以便更好地完成我们的任务。
