Selector Berlioz HTML
Berlioz HTML Selector es una biblioteca PHP para hacer consultas en archivos HTML con selectores CSS como JQuery en DOM.
Instalación
Compositor
Puede instalar el selector Berlioz HTML con el compositor, es la instalación recomendada.
$ composer require berlioz/html-selector
Dependencias
- Php ^8.0
- Bibliotecas PHP:
- domina
- libxml
- mbsstring
- simple
Uso
Cargar html
Puede cargar fácilmente una cadena o archivo HTML con la función estática HtmlSelector::query() . Para los archivos, use contentsIsFile segundo parámetro del método.
$ htmlSelector = new Berlioz HtmlSelector HtmlSelector ();
$ query = $ htmlSelector -> query ( ' <html><body>...</body></html> ' );
$ query = $ htmlSelector -> query ( ' path-of-my-file/file.html ' , contentsIsFile: true );
$ query = $ htmlSelector -> query ( new SimpleXMLElement ( /*...*/ ));
Cargar desde ResponseInterface
HtmlSelector::queryFromResponse() Permitir la carga HTML de un cuerpo de respuesta.
$ htmlSelector = new Berlioz HtmlSelector HtmlSelector ();
/** @var PsrHttpMessageResponseInterface $response */
$ query = $ htmlSelector -> queryFromResponse ( $ response );
Hacer una consulta
Es muy simple consultar una cadena HTML con un selector como jQuery .
/** @var BerliozHtmlSelectorQueryQuery $query */
$ query = $ query -> find ( ' body > .wrapper h2 ' );
$ query = $ query -> filter ( ' :first ' );
Selectores
Selectores simples CSS
- Tipo : Selección de elementos con su tipo.
- #ID : selección de un elemento con su identificación.
- .class : selección de elementos con su clase.
- Selecciones de atributos.
- [atributo] : con atributo 'atributo'.
- [atributo = foo] : el valor del atributo es igual a 'foo'.
- [atributo^= foo] : el valor del atributo comienza con 'foo'.
- [atributo $ = foo] : el valor del atributo termina con 'foo'.
- [atributo = foo] *: el valor del atributo contiene 'foo'.
- [atributo! = foo] : valor del atributo diferente de 'foo'.
- [atributo ~ = foo] : el valor del atributo contiene la palabra 'foo'.
- [atributo | = foo] : el valor del atributo contiene prefijo 'foo'.
Ascendantes, descendientes, múltiples de CSS
- Selector Selector o selector >> Selector : todo selector descendiente.
- Selector > Selector : Selector Direct Descendente (solo niños).
- Selector ~ Selector : Selector de hermanos.
- Selector , selector : múltiples selectores.
Clases de pseudo CSS
- : Any (selector, selector) : solo elementos dados en los argumentos.
- : Anylink : Solo elementos de tipo
<a> , <area> y <link> , con atributo [href] . - : en blanco : solo elementos sin hijo, y sin texto (excepto los espacios).
- : marcado : solo elementos con atributo
[checked] . - : DIR : Solo elementos con texto direccional dado (predeterminado: LTR).
- : desactivado : solo elementos de tipo
<button> , <input> , <optgroup> , <select> o <textarea> con el atributo [disabled] . - : vacío : Solo elementos sin hijo.
- : habilitado : solo elementos de tipo
<button> , <input> , <optgroup> , <option> , <select> , <textarea> , <menuitem> o <fieldset> sin el atributo [disabled] . - : primero : solo el primer resultado de la selección completa.
- : Primero Child : Solo los niños de primer nivel en sus padres.
- : Primero de tipo : Solo los primeros escriben en sus padres.
- : HA (selector, selector) : solo elementos que válidos Selector de niños.
- : lang (x) : solo elementos con atributo
[lang] prefijo o igual al valor dado. - : Last Child : Solo dura en sus padres.
- : Último tipo : solo dura el tipo de sus padres.
- : no (selector, selector) : filtro 'no'.
- : nth-child () : n elementos en el resultado del selector.
- : nth-lat-child () : n elementos en el resultado del selector, comience al final de la lista.
- : nth-of-type () : n elementos de tipo dado en el resultado selector.
- : NTH-Last-de-type () : n elementos del tipo dado en el resultado selector, comienza al final de la lista.
- : Solo Child : Solo elementos que son únicos niños en el padre.
- : Only of Type : Solo elementos que solo son tipo niño en el padre.
- : opcional () : solo elementos de entrada sin atributo
[required] . - : solo lectura () : Solo elementos que el usuario no puede editar.
- : read-write () : Solo elementos con propiedad editable.
- : requerido () : Solo elementos con atributo
[required] . - : root () : Get Root Element.
Clases de pseudo CSS adicionales (no en especificaciones de CSS) de JQuery Library
- : botón : solo elementos de tipo
<button> sin valor de atributo [type=submit] o <input type="button"> . - : casilla de verificación : solo elementos con atributo
[type=checkbox] . - : contiene (x) : solo elementos que contienen texto dado.
- : eq (x) : solo resultado con el índice dado (inicio del índice a 0).
- : incluso : solo incluso resulta en la selección.
- : archivo : solo elementos con atributo
[type=file] . - : GT (x) : solo resultado con un índice mayor que el índice dado (índice inicio a 0).
- : GTE : solo resultado con un índice mayor o igual al índice dado (índice inicial a 0).
- : Encabezado : Solo elementos de encabezado, como
<h1> , <h2> ... ... - : imagen : solo elementos con atributo
[type=image] . - : entrada : solo elementos de tipo
<input> , <textarea> , <select> o <button> . - : Último : Solo último resultado de la selección completa.
- : LT : Solo resultado con cuero de índice que el índice dado (índice de inicio a 0).
- : LTE : Solo resulte con cuero de índice que o igual al índice dado (índice de inicio a 0).
- : ODD : Solo resultados impares en la selección.
- : Padre : Solo elementos con un hijo o más.
- : contraseña : solo elementos con atributo
[type=password] . - : radio : solo elementos con atributo
[type=radio] . - : RESET : solo elementos con atributo
[type=reset] . - : seleccionado : solo elementos de tipo
<option> con atributo [selected] . - : Enviar : Solo elementos de tipo
<button> o <input> con atributo [type=submit] . - : texto : solo elementos de tipo
<input> con atributo [type=text] o sin [type] atributo.
Clases de pseudo CSS adicionales (no en especificaciones de CSS)
- : Count (x) : solo elementos que son x niños en el padre, usados en : tiene (selector) pseudo clase.
Ejemplo completo de selectores
select > option:selected
div#myId.class1.class2[name1=value1][name2=value2]:even:first
Funciones
Funciones predeterminadas
Algunas funciones predeterminadas están disponibles en el objeto de consulta para interactuar con los resultados. Las funciones deben tener el mismo resultado que sus contrapartes en jQuery.
- attr (nombre) : Obtener valor de atributo
- attr (nombre, valor) : establecer el valor de atributo
- Niños () : Obtenga hijos de elementos como resultado.
- Count () : Cuente el número de elementos en el resultado de la consulta.
- Datos (NameOfData) : Obtener valor de datos (el nombre es con la sintaxis de CamelCase sin el prefijo 'Data-').
- Filtro (selector) : elementos de filtro en el resultado.
- Find (Selector) : Find Selector en elementos en el resultado.
- Obtener (i) : Obtener el elemento DOM en el resultado.
- Hasclass (class_name) : Sepa si el menos uno de los elementos en el resultado ha dado clases.
- html () : obtenga html de primer elemento en el resultado.
- Índice (selector) : obtenga el índice de selector dado en los elementos de resultados.
- es (selector) : Sepa si el selector es válido el menos un elemento en el resultado.
- Isset (i) : devuelva boolean para saber si existe una clave de elemento en el resultado.
- Siguiente (selector) : Obtenga el siguiente elemento después de cada elemento en el resultado.
- NextAll (selector) : obtenga todos los siguientes elementos después de cada elemento en el resultado.
- no (selector) : elementos de filtro en el resultado.
- Padre () : Obtenga el resultado del padre directo del resultado actual de la selección.
- Padres (Selector) : Obtenga todos los padres del resultado actual de seleccionar.
- Prev (selector) : Obtener elemento previo después de cada elemento en el resultado.
- Prevall (selector) : obtenga todos los elementos previos después de cada elemento en el resultado.
- PROP (Nombre) : Obtenga el valor booleano de propiedad de un atributo, utilizado, por ejemplo, para el atributo
disabled . - Prop (nombre, valor) : Establezca el valor booleano de la propiedad de un atributo, utilizado por ejemplo para el atributo
disabled . - Serialize () : serializa los valores de entrada de un formulario. Devuelve una cadena.
- Serializearray () : serializar los valores de entrada de un formulario. Devolver una matriz.
- Text () : Obtenga el texto de cada elemento concatenado.
- Val () : Obtener valor de un elemento de formulario.