bdk/css-xpath 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bdk/css-xpath

最新稳定版本:v1.0.2

Composer 安装命令:

composer require bdk/css-xpath

包简介

Search html via CSS selector or convert css selector to xpath

关键字:

README 文档

README

  • Convert CSS selector to XPath
  • Query HTML string (or \DOMDocument) by CSS selector
  • Provide PHPUnit Assertions (once provided by PHPUnit)

No Dependencies Supported PHP versions Build Status

Installation

composer require bdk/css-xpath

Usage

CSS to XPath

\bdk\CssXpath\CssXpath::cssToXpath('ul > li:first-child');	// returns '//ul/li[1]'

Query DOM/HTML

Example:

$html = <<<HTML
<div id="article" class="block large">
  <h2>Article Name</h2>
  <p>Contents of article</p>
  <ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    <li>Four</li>
    <li><a href="#">Five</a></li>
  </ul>
</div>
HTML;

// use static method
var_dump(\bdk\CssXpath\CssSelect::select($html, 'ul > li:last-child [href]'));

// or create and use an instance
$cssSelect = new \bdk\CssXpath\CssSelect($html);
$found = $cssSelect->select('ul > li:last-child [href]');

Output:

array (size=1)
  0 =>
    array (size=3)
      'name' => string 'a' (length=1)
      'attributes' =>
        array (size=1)
          'href' => string '#' (length=1)
      'innerHTML' => string 'Five' (length=4)

Pass a last argument of true, to return a \DOMNodeList object instead of an array

PHPUnit

bdk\CssXpath\DOMTestCase extends \PHPUnit\Framework\TestCase and provides 3 assertions:

  • assertSelectCount($selector, $count, $actual, $message = '')
  • assertSelectRegExp($selector, $pattern, $count, $actual, $message = '')
  • assertSelectEquals($selector, $content, $count, $actual, $message = '')

These assertions were originally provided with PHPUnit 3.3, but removed with PHPUnit 5.0

统计信息

  • 总下载量: 30.39k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 0
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-01-29