2009年01月07日

PHPのgetElementById

PHP5にて。

DOMDocument::getElementByIdがうまくはたらかない模様。 この機能を使いたい場合は、独自に関数を定義すればいいらしい。

ソースコードは続きに。

function getElementById(
	DOMDocument $doc,
	/*string*/ $id,
	DOMNode $node = NULL)
{
	if ($node === NULL)
		return getElementById($doc, $id, $doc->documentElement);
	
	$children = $node->childNodes;
	for ($i = 0; $i < $children->length; ++$i) {
		$elem = $children->item($i);
		if (!($elem instanceof DOMElement))
			continue;
		if ($elem->getAttribute('id') == $id)
			return $elem;
		$ret = getElementById($doc, $id, $elem);
		if ($ret !== NULL)
			return $ret;
	}

	return NULL;
}

使うときは次のようにする。

$tags = getElementById('DOMドキュメント', 'DOMノードのID', '対象のノード 指定しなければ全体が対象');



同じカテゴリー(プログラミング)の記事画像
GoogleReaderを3ペイン表示にするスクリプトのα版
文字サイズを拡大縮小するスクリプト
電卓を表示するブックマークレット
Twitterで費やした時間を表示するスクリプト
ニコニコのタグをプレビューするスクリプト
ニコニコで広告を消すスクリプト
同じカテゴリー(プログラミング)の記事
 GoogleReaderを3ペイン表示にするスクリプトのα版 (2009-07-26 22:00)
 クリック動作を無効にするジョークブックマークレット (2009-07-19 23:52)
 文字サイズを拡大縮小するスクリプト (2009-07-12 18:09)
 ダブルクリックでスクロールするスクリプト (2009-07-05 14:22)
 電卓を表示するブックマークレット (2009-06-27 21:40)
 ごくごく一部の顔文字を絵文字に置き換えるスクリプト (2009-05-21 23:06)
Posted by Handle at 21:08│Comments(1)プログラミング
この記事へのコメント
めちゃくちゃ助かりました。。。ありがとうございます!
Posted by Nat at 2010年04月15日 18:33
コメントフォーム
上の画像に書かれている文字を入力して下さい
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。