PHP에서 DOM 조작

어지러운

프로젝트 전체에서 DomCralwer사용해 왔지만 이 XPath 쿼리에 버그가 //table[*[self::tbody or self::thead or self::tfoot]/tr[count(*) = 2]]있으므로 해결 방법으로 기본 제공 기능을 사용하려고합니다.

for ($i=0; $i < count($tables); $i++) {

  $tables[$i] = purifyTables($tables[$i]);
  echo($tables[$i]);

  $dom = new DOMDocument();
  $dom->loadHTML( $tables[$i] );
  $xpath = new DOMXPath($dom);
  $nodes =  $xpath->query("//table[*[self::tbody or self::thead or self::tfoot]/tr[count(*) = 2]]");
  echo($nodes);
  echo($dom->saveHTML($nodes));

}

... 그러나 출력은 예상치 못한 것입니다.

<table>
  <tr>
    <td>
      WII 5-IN-1 SPORTS KIT H7/10 5-in-1 Glow-in-the-Dark Sports
      Pack for Wii
    </td>
  </tr>
  <tr>
    <td></td>
  </tr>
  <tr>
    <td>
      Our Price: $19.99 Sale: $5.00 You Save: 75%
    </td>
  </tr>
</table>
DOMNodeList Object
(
    [length] => 0
)

PHP Warning:  DOMDocument::saveHTML() expects parameter 1 to be DOMNode, object given in /var/www/html/myscript.php on line 195

Warning: DOMDocument::saveHTML() expects parameter 1 to be DOMNode, object given in /var/www/html/myscript.php on line 195
루슬란 오 스마 노프

XPath Expresson

//table[*[self::tbody or self::thead or self::tfoot]/tr[count(*) = 2]]

선택 모든 table가진들 tbody, thead또는 tfootA를 자식 (그 중 하나) tr아이가 정확히 두 개의 자식 노드를 갖는. 샘플 HTML의 테이블이 표현식과 일치하지 않기 때문에 빈 DOMNodeList. 때문에이 일치하지 않는 table요소가 나와 아이들의 아무도가 없습니다 ( tbody, thead또는 tfoot).

질문에 대한 의견에서 정확히 두 개의 열이있는 모든 테이블을 가져 오려고한다는 것을 알아 냈습니다. 다음 XPath 표현식을 사용하여이를 수행 할 수 있습니다.

//table[(.|tbody|thead|tfoot)/tr[count(td) = 2]]

태그 tbody,, theadtfoot태그 .는 OR 된 요소의 시퀀스에 테이블 태그 ( ) 에 대한 참조를 포함하므로 선택 사항 입니다. count기능은 td요소 만 선택합니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

유성에서 DOM 조작

분류에서Dev

테이블에서 angularjs dom 조작

분류에서Dev

DOM 조작 AngularJS에서 요소 추가

분류에서Dev

select 요소의 change ()에서 DOM 조작

분류에서Dev

JSX (React)에서 가상 DOM 조작

분류에서Dev

PHP DOM HTML 테이블 조작

분류에서Dev

반응 | DOM 조작

분류에서Dev

AngularJS로 DOM 조작

분류에서Dev

DOM 조작 질문

분류에서Dev

Angular의 DOM 조작

분류에서Dev

Angular에서 구성 요소의 DOM 요소 조작

분류에서Dev

Knockout ViewModel에서 jQuery DOM 조작-bindingHandlers 사용?

분류에서Dev

React + Redux에서 DOM 조작의 복잡성

분류에서Dev

angularJS에서 DOM 조작하기 : 모범 사례?

분류에서Dev

AngularDart-컴포넌트에서 DOM 조작

분류에서Dev

PHP에서 DOM 조작을 완전히 분리하는 방법은 무엇입니까?

분류에서Dev

DOM에 삽입하기 전에 html 문자열 조작

분류에서Dev

크롬 확장을 사용하여 서버에서 원본 HTML DOM 조작

분류에서Dev

DOM 조작을 통해로드 된 Javascript 서브 파일에서 오류 캡처

분류에서Dev

자바 서블릿 DOM 조작 및 HTML 출력

분류에서Dev

데이터 객체에 의한 Javascript DOM 조작

분류에서Dev

ReactJS에서 DOM을 조작하는 것이 좋은 습관입니까?

분류에서Dev

DOM을 조작하여 객체에서 이미지를 가져 오는 방법

분류에서Dev

바닐라 JS DOM 조작에서 DRY 코드를 얻는 방법

분류에서Dev

NextJS에서 정적 렌더링 후 클라이언트 측 DOM 조작 실행

분류에서Dev

데이터가 바인딩 된 후 지시문에서 DOM 조작

분류에서Dev

PHP에서 MultiDimensionalarray 조작

분류에서Dev

Polymer에서 프로그래밍 방식으로 로컬 DOM을 조작하는 방법 (예 : dom-repeat)

분류에서Dev

JavaScript DOM 테이블 조작

Related 관련 기사

뜨겁다태그

보관