2010-12-15 3 views
7

PHP의 DOMDocument에서 h3 참조를 받았습니다.PHP의 DOMDocument를 형제로 사용할 수 있습니까?

$dom = new DOMDocument(); 

$dom->loadHtml($content); 

$h3s = $dom->getElementsByTagName('h3'); 

foreach($h3s as $h3) { 

    var_dump($h3->nodeValue); 

} 

h3 다음 요소를 가져와야합니다. 이 경우 다음 요소 인 모든 요소가 다음 h3 또는 문서 끝 부분이됩니다.

정규식을 사용하면 쉽게 작동하지만 여기서는 HTML을 구문 분석하는 데 사용하고 싶지 않습니다. 정규 표현식 인 것을 참고로

...

preg_match_all('/<h3>([^<]+)<\/h3>(.*?)(<h3|$)/', $content, $matches); 

(허약, 따라서 적절한 파싱 욕구).

DOMDOcument를 위의 정규식에서 $matches으로 예상되는 데이터를 사용하면 어떻게 될까요?

documentation을 확인했지만 JavaScript의 nextSibling 속성을 찾을 수 없습니다.

답변

14

$h3->nextSibling$h3->previousSibling은 귀하가 찾고있는 것입니다.

getElementsByTagName은 반복 할 때 DOMNode 요소를 포함하는 DOMNodeList을 반환합니다.

http://www.php.net/manual/en/class.domnode.php

+2

일이 주어진 클래스는 PHP 매뉴얼에 확장 어떤 클래스를 확인하는 것이 중요합니다. – netcoder

관련 문제