alanvdb / html-dom
HTML DOM 操作库
v0.1
2024-08-25 10:44 UTC
Requires (Dev)
- phpunit/phpunit: ^11.3
This package is auto-updated.
Last update: 2024-09-25 11:01:36 UTC
README
一个用于操作 HTML DOM 结构的 PHP 库。
概览
alanvdb/html-dom
库提供了一组工具,用于在 PHP 中处理 HTML DOM。该库允许您加载 HTML、遍历和操作 DOM 元素,并使用 XPath 查询元素。它旨在简化 PHP 应用程序中的 DOM 操作任务。
该库的主要组件包括
- HtmlDomFactory:从提供的 HTML 字符串创建和配置 DOMDocument 和 DOMXPath 实例。
- HtmlDomParser:提供使用 XPath 查询和操作 HTML DOM 的方法。
安装
要安装此库,请使用 Composer
composer require alanvdb/html-dom
用法
创建和使用 DOMDocument
HtmlDomFactory
类允许您从 HTML 字符串创建一个 DOMDocument
。然后,您可以使用此 DOMDocument
对 DOM 执行各种操作。
示例
use AlanVdb\Html\Factory\HtmlDomFactory; $factory = new HtmlDomFactory(); $domDocument = $factory->createHtmlDomDocument('<div id="test">Hello World</div>');
使用 XPath 查询 DOM
HtmlDomParser
类允许您使用 XPath 表达式查询 DOM。您可以通过 ID、类名或标签名检索元素,并进行更复杂的查询。
示例
use AlanVdb\Html\Factory\HtmlDomFactory; use AlanVdb\Html\HtmlDomParser; $factory = new HtmlDomFactory(); $parser = $factory->createHtmlDomParserFromHtml('<div id="test">Hello World</div>'); $element = $parser->getFirstElementWithId('test'); echo $element->textContent; // Outputs: Hello World
使用 HtmlDomFactory
HtmlDomFactory
简化了 DOMDocument
、DOMXPath
和 HtmlDomParser
实例的创建。
示例
use AlanVdb\Html\Factory\HtmlDomFactory; $factory = new HtmlDomFactory(); $parser = $factory->createHtmlDomParserFromHtml('<div id="test">Hello World</div>'); $element = $parser->getFirstElementWithId('test'); echo $element->textContent; // Outputs: Hello World
API 文档
HtmlDomFactory
方法
createHtmlDomDocument(string $html): DOMDocument
:从提供的 HTML 字符串创建并返回一个DOMDocument
。createXPath(DOMDocument $document, bool $registerNodeNS = true): DOMXPath
:从提供的DOMDocument
创建并返回一个DOMXPath
实例。createXPathFromHtml(string $html, bool $registerNodeNS = true): DOMXPath
:从提供的 HTML 字符串创建并返回一个DOMXPath
实例。createHtmlDomParserFromHtml(string $html): HtmlDomParser
:从提供的 HTML 字符串创建并返回一个HtmlDomParser
实例。
HtmlDomParser
方法
getFirstElementWithId(string $id, ?DOMNode $contextNode = null, bool $registerNodeNS = true): ?DOMElement
:检索具有指定 ID 的第一个元素。getElementsWithClass(string $className, ?DOMNode $contextNode = null, bool $registerNodeNS = true): ?DOMNodeList
:检索所有具有指定类名的元素。getFirstElementWithClass(string $className, ?DOMNode $contextNode = null, bool $registerNodeNS = true): ?DOMElement
:检索具有指定类名的第一个元素。getElementsWithTag(string $tag, ?DOMNode $contextNode = null, bool $registerNodeNS = true): ?DOMNodeList
:检索所有具有指定标签名的元素。getFirstElementWithTag(string $tag, ?DOMNode $contextNode = null, bool $registerNodeNS = true): ?DOMElement
:检索具有指定标签名的第一个元素。xPathQuery(string $query, ?DOMNode $contextNode = null, bool $registerNodeNS = true): ?DOMNodeList
:在 DOM 上执行 XPath 查询并返回结果。hasClass(string $class, DOMElement $element): bool
:检查元素是否具有特定类。
测试
要运行测试,请使用以下命令
vendor/bin/phpunit
测试位于 tests
目录中,并涵盖了主要组件(如 HtmlDomFactory
和 HtmlDomParser
)的功能。
许可证
本项目采用MIT许可协议。有关详细信息,请参阅LICENSE文件。