alanvdb/html-dom

v0.1 2024-08-25 10:44 UTC

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 操作任务。

该库的主要组件包括

  1. HtmlDomFactory:从提供的 HTML 字符串创建和配置 DOMDocument 和 DOMXPath 实例。
  2. 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 简化了 DOMDocumentDOMXPathHtmlDomParser 实例的创建。

示例

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 目录中,并涵盖了主要组件(如 HtmlDomFactoryHtmlDomParser)的功能。

许可证

本项目采用MIT许可协议。有关详细信息,请参阅LICENSE文件。