zenthangplus / html-dom-parser
一个简单的PHP编写的HTML DOM解析器,让您可以使用CSS选择器轻松操作HTML。
1.0.3
2019-05-13 16:45 UTC
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^5
This package is auto-updated.
Last update: 2024-09-14 06:27:15 UTC
README
一个简单的PHP编写的HTML DOM解析器,让您可以使用CSS选择器轻松操作HTML。
这是Simple HTML DOM的现代版本。您可以使用Composer安装并作为包导入到项目中。
功能
- 解析和修改HTML文档。
- 使用类似jQuery的选择器在HTML中查找标签(元素)。
- 单行提取HTML内容。
- 将元素或特定节点导出到单个文件。
- 支持结构无效的HTML文档。
安装
您可以使用Composer通过运行以下命令将此包安装到项目中:
composer require zenthangplus/html-dom-parser
最低PHP版本要求为5.6。如果您使用的是PHP < 5.6,请使用原始版本。
用法
以下示例是此包的简单用法
<?php $dom = \HTMLDomParser\DomFactory::load('<div class="container"><div class="anchor"><a href="#">Test</a></div></div>'); $a = $dom->findOne('.container a'); echo $a->text(); // Output: Test
DOM
Dom是HTML文档的根节点。
您可以从string
或file
加载DOM。
<?php $dom = \HTMLDomParser\DomFactory::load('<div>Test</div>');
<?php $dom = \HTMLDomParser\DomFactory::loadFile('document.html');
NODE
Node是一个简单的HTML元素,以对象的形式描述。
您也可以加载任何Node(类似于Dom)
<?php $node = \HTMLDomParser\NodeFactory::load('<div><a href="#">Test</a></div>');
<?php $node = \HTMLDomParser\NodeFactory::loadFile('document.html');
遍历DOM
使用类似jQuery或CSS的选择器,您可以轻松地在Dom或Node中遍历。
示例
<?php $dom = \HTMLDomParser\DomFactory::loadFile('document.html'); $dom->find('div'); $dom->find('#container'); $dom->find('#container .content ul>li a.external-link'); $dom->find('#container .content ul>li a[data-id=link-1]');
类似于Dom,Node也可以遍历
<?php $dom = \HTMLDomParser\DomFactory::loadFile('document.html'); $node = $dom->findOne('#container .content ul>li'); $anchorNode = $node->findOne('a.external-link'); // Even traverse in a separate Node $node = \HTMLDomParser\NodeFactory::load('<ul class="list"><li>Item 1</li><li>Item 2</li></ul>'); $node->find('ul.list li');
支持的选择器列表
您可以使用以下选择器进行操作的函数列表
特定查找函数
访问节点数据
text()
获取文本内容getAttributes()
获取属性getAttribute()
获取单个属性hasAttribute()
检查元素是否有属性hasChild()
检查元素是否有子元素innerHtml()
获取内部HTMLouterHtml()
获取外部HTMLinnerXml()
获取内部XML- 获取节点的HTML