Berlioz HTML 선택기
Berlioz HTML Selector는 DOM의 jQuery 와 같은 CSS 선택기가있는 HTML 파일에서 쿼리를 수행하는 PHP 라이브러리입니다.
설치
작곡가
Composer를 사용하여 Berlioz HTML 선택기를 설치할 수 있습니다. 권장 설치입니다.
$ composer require berlioz/html-selector
의존성
용법
HTML을로드하십시오
정적 함수 HtmlSelector::query() 로 HTML 문자열 또는 파일을 쉽게로드 할 수 있습니다. 파일의 경우 메소드의 두 번째 매개 변수 contentsIsFile 사용하십시오.
$ 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 ( /*...*/ ));
ResponseInterface 에서로드하십시오
HtmlSelector::queryFromResponse() 응답 본문의 HTML로드가 허용됩니다.
$ htmlSelector = new Berlioz HtmlSelector HtmlSelector ();
/** @var PsrHttpMessageResponseInterface $response */
$ query = $ htmlSelector -> queryFromResponse ( $ response );
쿼리를하십시오
jQuery 와 같은 선택기로 HTML 문자열을 쿼리하는 것은 매우 간단합니다.
/** @var BerliozHtmlSelectorQueryQuery $query */
$ query = $ query -> find ( ' body > .wrapper h2 ' );
$ query = $ query -> filter ( ' :first ' );
선택기
CSS 간단한 선택기
- 유형 : 유형의 요소 선택.
- #ID : ID가있는 요소를 선택합니다.
- 클래스 : 수업과 함께 요소 선택.
- 속성 선택.
- [속성] : 속성 '속성'이 있습니다.
- [속성 = foo] : 속성 값은 'foo'와 같습니다.
- [속성^= foo] : 속성 값은 'foo'로 시작합니다.
- [속성 $ = foo] : 속성 값은 'foo'로 끝납니다.
- [attribute = foo] *: 속성의 값에는 'foo'가 포함됩니다.
- [속성! = foo] : 속성의 값 'foo'와 다릅니다.
- [속성 ~ = foo] : 속성의 값에는 단어 'foo'가 포함됩니다.
- [속성 | = foo] : 속성의 값에는 prefix 'foo'가 포함됩니다.
CSS 승천, 후손, 배수
- 선택기 선택기 또는 선택기 >> 선택기 : 모든 자손 선택기.
- 선택기 > 선택기 : 직접 자손 선택기 (어린이 만).
- 선택기 ~ 선택기 : 형제 자매 선택기.
- 선택기 , 선택기 : 다중 선택기.
CSS 의사 클래스
- : 모든 (선택기, 선택기) : 인수에 제공된 요소 만.
- : 모든 링크 :
[href] 속성이있는 유형 <a> , <area> 및 <link> 의 요소 만. - : 공백 : 자식이없는 요소 만 텍스트가 없습니다 (공백 제외).
- : 점검 : 속성이있는 요소 만
[checked] . - : dir : 방향성 텍스트가있는 요소 만 (기본값 : ltr).
- : disabled : 유형
<button> , <input> , <optgroup> , <select> 또는 [disabled] 속성이있는 <textarea> 의 요소 만. - : 비어 : 아이가없는 요소 만.
- : enabled : 유형의
<button> , <input> , <optgroup> , <pluctgroup>, <option> , <select> , <textarea> , <menuitem> 또는 <fieldset> 의 요소 만 [disabled] 속성이 없습니다. - : 첫째 : 완전한 선택의 첫 번째 결과 만.
- : 일-자녀 : 부모님의 자녀만이됩니다.
- : First-Type : 부모를 먼저 입력합니다.
- : HAS (Selector, Selector) : 유효한 자식 선택자 요소 만.
- : lang (x) : 속성
[lang] 이 주어진 값에 의해 접두사가있는 요소 만. - : 마지막 자녀 : 부모님 만 지속됩니다.
- : 마지막 유형 : 부모의 유형 만 지속됩니다.
- : not (selector, selector) : 필터 'not'.
- : nth-Child () : n 선택기 결과의 요소.
- : n-last-child () : n 선택기 결과의 요소는 목록 끝에서 시작합니다.
- : nth-of-type () : n 선택기 결과에서 주어진 유형의 요소.
- : n-last-of-type () : n 주어진 유형의 요소 선택기 결과에서 목록 끝에서 시작하십시오.
- : Only-Child : 부모의 자녀 인 요소 만.
- : 전용 유형 : 부모의 자식 만 유형 인 요소 만.
- : 옵션 () :
[required] 속성이없는 입력 요소 만. - : read foll () : 사용자가 편집 할 수없는 요소 만.
- : read-write () : 편집 가능한 속성을 가진 요소 만.
- : 필수 () :
[required] 속성이있는 요소 만. - : root () : 루트 요소를 얻습니다.
JQuery Library의 추가 CSS 의사 클래스 (CSS 사양이 아님)
- : 버튼 : 속성 값이없는 유형
<button> 의 요소 만 [type=submit] 또는 <input type="button"> . - : Checkbox : 속성이있는 요소 만
[type=checkbox] . - : (x) 포함 : 주어진 텍스트를 포함하는 요소 만 포함합니다.
- : EQ (x) : 인덱스가 주어진 결과 만 결과 (색인 시작).
- : 심지어 : 선택이 발생합니다.
- : 파일 : 속성
[type=file] 이있는 요소 만. - : gt (x) : 인덱스가 주어진 인덱스보다 큰 인덱스만으로 결과 (색인 시작).
- : GTE : 인덱스가 주어진 인덱스와 같은 인덱스만으로 결과 (색인 시작).
- : 헤더 :
<h1> , <h2> 와 같은 제목 요소 만 ... - : 이미지 : 속성이있는 요소 만
[type=image] . - : 입력 :
<input> , <textarea> , <select> 또는 <button> 유형의 요소 만. - : 마지막 : 완전한 선택의 마지막 결과.
- : LT : 인덱스가 주어진 인덱스 가죽으로 만 결과 (색인 시작).
- : LTE : 인덱스 가죽으로 만 인덱스가 주어진 인덱스가있는 결과 (인덱스 시작).
- : 홀수 : 선택시 홀수 결과 만.
- : 부모 : 한 아이 이상의 요소 만.
- : 비밀번호 : 속성이있는 요소 만
[type=password] . - : 라디오 : 속성이있는 요소 만
[type=radio] . - : 재설정 : 속성이있는 요소 만
[type=reset] . - : selected : 속성
[selected] 이있는 유형 <option> 의 요소 만. - : 제출 : 속성
[type=submit] 이있는 유형 <button> 또는 <input> 의 요소 만. - : 텍스트 : 속성
[type=text] 또는 [type] 속성이없는 유형의 <input> 의 요소 만.
추가 CSS 의사 클래스 (CSS 사양이 아님)
- : count (x) : 부모의 X 어린이 인 요소 만 사용합니다 .
선택기의 전체 예
select > option:selected
div#myId.class1.class2[name1=value1][name2=value2]:even:first
기능
기본 기능
일부 기본 기능은 쿼리 객체에서 결과와 상호 작용할 수 있습니다. 기능은 jQuery의 상대와 동일한 결과를 가져야합니다.
- attr (이름) : 속성 값을 얻습니다
- attr (이름, 값) : 속성 값을 설정합니다
- 어린이 () : 결과에 요소의 자녀를 얻습니다.
- count () : 쿼리 결과의 요소 수를 계산하십시오.
- 데이터 (nameofdata) : 데이터 값 가져 오기 (이름은 'data-'접두사없이 Camelcase 구문이 있습니다).
- 필터 (선택기) : 결과의 필터 요소.
- 찾기 (선택기) : 결과에서 요소에서 선택기를 찾으십시오.
- get (i) : 결과에서 dom 요소를 얻습니다.
- Hasclass (class_name) : 결과의 요소 중 하나가 클래스를 제공했는지 알고 있습니다.
- html () : 결과에서 첫 번째 요소의 html을 얻습니다.
- 인덱스 (선택기) : 결과 요소에서 주어진 선택기의 인덱스를 가져옵니다.
- IS (선택기) : 셀렉터가 결과에서 최소 하나의 요소를 유효한 지 알고 있습니다.
- ISSET (I) : 결과에 요소 키가 존재하는지 확인하기 위해 부울 반환.
- 다음 (선택기) : 결과의 각 요소 후에 다음 요소를 얻습니다.
- NextAll (Selector) : 결과의 각 요소 후에 다음 요소를 모두 가져옵니다.
- NOT (선택기) : 결과의 필터 요소.
- Parent () : 선택의 현재 결과에 대한 직접 부모를 얻습니다.
- 학부모 (선택기) : 선택의 현재 결과의 모든 부모를 얻습니다.
- prev (selector) : 결과의 각 요소 후에 이전 요소를 가져옵니다.
- revall (selector) : 결과의 각 요소 후에 모든 이전 요소를 가져옵니다.
- prop (name) : 속성 부울 값을 얻습니다. 예를 들어
disabled 속성에 사용됩니다. - PROP (이름, 값) : 속성 부울 부울 속성의 값을 예로 들어
disabled 속성에 사용합니다. - Serialize () : 양식의 입력 값을 직렬화합니다. 문자열을 반환하십시오.
- SerializearRay () : 양식의 입력 값을 직렬화합니다. 배열을 반환하십시오.
- 텍스트 () : 각 요소의 텍스트를 연결합니다.
- val () : 양식 요소의 값을 얻습니다.