0

自分のテンプレートシステムに単純なHTMLDOMパーサーを使用していますが、問題が見つかりました。

これが私のマークアップです:

<div class=content>
    <div class=navigation></div>
</div>

div.navigationを次のような独自のコンテンツに置き換えています。

$navi= $dom->find("div.navigation",0);
$navi->outertext = "<a class=aNavi>click me!</a>";

うまく機能します-エコーできますが、問題は-エコーする前に、パーサーでそのリンクにアクセス/操作したいのですが、パーサーはそれを見つけられません。

$link = $dom->find("a.aNavi");

nullを返します:(

アウターテキストを変更した後、パーサーを更新/更新する必要があるようです-可能であれば何かアイデアはありますか?

4

1 に答える 1

2

APIリファレンスcreateElementに-likeメソッドが表示されません。これは、ドキュメントが不完全であるか、ジョブに間違ったツールを使用していることを意味します。

DOMDocumentDOMDocument::createElement()メソッドを使用することをお勧めします。ただし、Simple HTML DOMパーサーの使用に完全に取り掛かっている場合は、次のハックを試すことができます。

$navi = $dom->find('div.navigation', 0);
$navi->outertext = '<a class="aNavi">click me!</a>';
$dom = $dom->save();
$dom = str_get_html($dom);
$link = $dom->find('a.aNavi');
于 2012-01-19T14:17:08.583 に答える