DownloadXidel
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 « format d'entrée »
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 « type d'extraction »
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 « encodage pour la sortie »
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 « format de la sortie »
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.
|