2012-03-30 5 views
1

PHP/Zend를 사용하여 DOM에 HTML을로드하고 수정하려는 특정 div ID를 얻습니다. 내가 그 $element DIV 안에 표시되는 텍스트/내용/HTML을 수정 한 다음 그래서 수정 된 HTML을 인쇄 할 수 있습니다 $dom 또는 $html에 변경 사항을 저장하려면 어떻게PHP DOM에서 요소 가져 오기 및 해당 값 변경

$dom = new Zend_Dom_Query($html); 
$element = $dom->query('div[id="someid"]'); 

. 어떤 생각을 어떻게 할 것인가?

+0

: DOMElement 당신이 DOM을 변경할 수있는 방법에 대한 아이디어를 얻을 수 있도록

$dom = new Zend_Dom_Query($html); $document = $dom->getDocument(); $elements = $dom->query('div[id="someid"]'); foreach($elements AS $element) { //$element is an instance of DOMElement (http://www.php.net/DOMElement) //You have to create new nodes off the document $node = $document->createElement("div", "contents of div"); $element->appendChild($node) } $newHtml = $document->saveXml(); 

는 PHP의 문서를 살펴 보자 정규식으로 나는 정규식이 싫어서 DOM 라이브러리로 처리하는 데 어려움을 겪곤했다. JustHost는 너무 많은 메모리와 리소스를 소비하므로주의해야하므로 결국 호스팅 계정을 일시 중지했습니다. 정규식을 사용하십시오. –

+0

@ GRIGORE-TURBODISEL 덕분에, 그 점을 명심 해 두겠습니다. – sameold

+1

Eclipse (또는 Zend Studio와 같은 Eclipse 기반의 것)를 사용하는 경우'foreach()'에서'/ * @var $ result DOMElement * /'를 사용하면'DOMElement' 객체를 자동 완성합니다 . – Liyali

답변

3

Zend_Dom_Query는 dom을 쿼리하기위한 것일 뿐이므로 dom을 변경하고 저장하기위한 인터페이스를 제공하지는 않지만 그렇게 할 수있는 PHP 네이티브 DOM 객체를 노출합니다. 이런 식으로 뭔가 작동합니다 : 당신이 더 좋을 것 같아 그냥 빨리 예방 조치

http://www.php.net/DOMElement

관련 문제