PHP Classes
elePHPant
Icontem

PHP Xidel: Extract information from HTML using the Xidel tool

Recommend this page to a friend!
  Info   View files Documentation   View files View files (4)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2015-08-13 (1 year ago) RSS 2.0 feedNot yet rated by the usersTotal: 125 All time: 8,343 This week: 1,109Up
Version License PHP version Categories
xidel 0.1GNU General Publi...5.4HTML, XML, PHP 5
Description Author

This class can extract information from HTML using the Xidel tool.

It can execute the Xidel command to parse a given XML or HTML document.

The class can extract information from the document using XPATH or CSS selector expressions.

Picture of Alliaume Hugo
  Performance   Level  
Name: Alliaume Hugo <contact>
Classes: 2 packages by
Country: France France

Details

Xidel

Une classe PHP qui permet d'utiliser le parseur de données HTML/XML avec du code PHP.

Comment l'utiliser ?

Premièrement, il faut inclure la classe et l'instancier

<?php
require 'class.Xidel.php';
$xidel = new Xidel();
// ou
$xidel = new Xidel('http://exemple.com');
// ou
$xidel = new Xidel('<!DOCTYPE html><html>.....</html>');

// Pro-tip : Tu peux aussi utiliser la méthode 'setData'
$xidel = new Xidel();
$xidel->setData('http://exemple.com');

Deuxièment, il faut spécifier différentes le format d'entrée, l'encodage, et le format de sortie

// Le format d'entrée sera en HTML
$xidel->setInputFormat(Xidel::INPUT_FORMAT_HTML);

// L'encodage sera de l'UTF-8 (par défaut)
$xidel->setOutputEncoding(Xidel::OUTPUT_ENCODING_UTF8);

// Le format de sortie sera du HTML
$xidel->setOutputFormat(Xidel::OUTPUT_FORMAT_HTML);

Troisèment, il faut définir un ou plusieurs contenu(s) à éxtraire

// Récupère un <a> pour couple attribut/valeur 'title="Home"
$xidel->setExtract('a[title="Home"]');

// Récupère les <a> qui ont pour parent `*[id="ft"] > ul > li`
$xidel->setExtract('//*[@id="ft"]/ul/li/a', Xidel::EXTRACT_KIND_XPATH);

// Exécution de Xidel et retour des données
$content = $xidel->process();

// On affiche les erreurs (vaut 'empty' s'il n'y en a pas eu)
var_dump($xidel->errors());

Documentation / API

Constantes

Format d'entrée

  • INPUT_FORMAT_AUTO = 0 : Format d'entrée en automatique (défaut)
  • INPUT_FORMAT_HTML = 1 : Format d'entrée en HTML
  • INPUT_FORMAT_XML = 2 : Format d'entrée en XML
  • INPUT_FORMAT_XMLSTRICT = 3 : Format d'entrée en XML-strict
  • INPUT_FORMAT_JSON = 4 : Format d'entrée en JSON

Type d'extraction

  • EXTRACT_KIND_CSS = 0 : Type d'extraction CSS (défaut)
  • EXTRACT_KIND_XPATH = 1 : Type d'extraction XPath
  • EXTRACT_KIND_XPATH2 = 2 : Type d'extraction XPath n°2
  • EXTRACT_KIND_XPATH3 = 3 : Type d'extraction XPath n°3
  • EXTRACT_KIND_XQUERY = 4 : Type d'extraction XQuery
  • EXTRACT_KIND_XQUERY1 = 5 : Type d'extraction XQuery n°1
  • EXTRACT_KIND_XQUERY3 = 6 : Type d'extraction XQuery n°3
  • EXTRACT_KIND_TEMPLATEFILE = 7 : Type d'extraction avec un fichier template
  • EXTRACT_KIND_TEMPLATEACTION = 8 : Type d'extraction avec une action template

Encodage pour la sortie

  • OUTPUT_ENCODING_UTF8 = 0 : Encodage UTF-8 (défaut)
  • OUTPUT_ENCODING_LATIN1 = 1 : Encodage Latin-1
  • OUTPUT_ENCODING_UTF16BE = 2 : Encodage UTF-16BE
  • OUTPUT_ENCODING_UTF16LE = 3 : Encodage UTF-16LE
  • OUTPUT_ENCODING_OEM = 4 : Encodage OEM
  • OUTPUT_ENCODING_INPUT = 5 : Encodage INPUT

Format de la sortie

  • OUTPUT_FORMAT_ADHOC = 0 : Format adhoc (défaut)
  • OUTPUT_FORMAT_XML = 1 : Format XML
  • OUTPUT_FORMAT_HTML = 2 : Format HTML
  • OUTPUT_FORMAT_XMLWRAPPED = 3 : Format XML-wrapped
  • OUTPUT_FORMAT_JSONWRAPPED = 4 : Format JSON-wrapped
  • OUTPUT_FORMAT_BASH = 5 : Format Bash
  • OUTPUT_FORMAT_CMD = 6 : Format cmd

Méthodes

null setData(string $data)

Indique à Xidel les données qui seront traitées. $data* peut être une URL, un fichier, des données brutes, ou l'entrée standard (STDIN)

bool setInputFormat(int $format)

Indique à Xidel le format d'entrée. Retourne true si le format spécifié est reconnu par Xidel, sinon false. $format* est une des constantes &laquo; format d'entrée &raquo;

bool setExtract(string $selector, int $extractKind = Xidel::EXTRACT_KIND_CSS)

Indique à Xidel les différentes extracts à effectuer. Retourne true si le type d'extraction spécifié est reconnu par Xidel, sinon false. $selector* est le sélecteur à utiliser $extractKind* est une des constantes &laquo; type d'extraction &raquo;

bool setOutputEncoding(int $encoding)

Indique à Xidel l'encodage de la sortie. Retourne true si l'encodage spécifié est reconnu par Xidel, sinon false. $encoding* est une des constantes de &laquo; encodage pour la sortie &raquo;

bool setOutputFormat(int $format)

Indique à Xidel le format de la sortie. Retourne true si le format spécifié est reconnu par Xidel, sinon false. $format* est une des constantes de &laquo; format de la sortie &raquo;

null setCustomParam(string $param, string $value = null)

Créer un couple $param => $value personnalisé pour la ligne de commande. $param* est le nom du paramètre $value est la valeur du paramètre

string buildCommand()

Construit et retourne la commande Xidel qui sera éxecutée plus tard.

string getCommand()

Retourne la commande Xidel qui sera éxecutée par PHP.

array|string process()

Exécute la commande générée par la méthode buildCommand. Retourne un tableau contenant le résultat de la commande, ou une chaîne de caractères si le tableau a une taille égale à 1.

array errors()

Retourne un tableau contenant les erreurs qui ont étés déclenchées pendant l'appel des méthodes de Xidel

null reset()

Supprime la commande courante et vide le tableau contenant les extracts, afin de procéder à un nouveau parsage.

  Files folder image Files  
File Role Description
Plain text file class.Xidel.php Class Class source
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file README.md Doc. Auxiliary data
Accessible without login Plain text file XidelTest.php Test Unit test script

 Version Control Unique User Downloads Download Rankings  
 100%
Total:125
This week:0
All time:8,343
This week:1,109Up