2012-03-30 22 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

あなたが優れているだけで簡単に用心正規表現でオフにします。私は正規表現が嫌いなので、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オブジェクトが公開されます。このような何か動作するはずです:

$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(); 

あなたは、DOMを変更することができる方法のアイデアを得るためにDOMElementのためのPHPドキュメントを見てみましょう:

http://www.php.net/DOMElement

関連する問題