[PHP-users 30411] getElementByIdを使って特定要素のテキストノード取得

Masuda macindows @ forest.ocn.ne.jp
2006年 9月 22日 (金) 19:27:49 JST


増田と申します。

現在PHPを使って、HTMLからID指定で要素を取得しようとしているのですが、理解できない点がありますの
で、ご教授願えたらと思います。

以下のように、getElementByTagNameを使って、pタグに囲まれたテキストノードは取得できるのですが、
getElementByIdを使ってID指定でできないかと思っております。

$myhtml = <<<EOF
<html>
<head>
<title>My Page</title>
</head>
<body>
<p>para1<br>
<p id="title">P2Title</p><br>
</body>
</html>
EOF;

$doc = new DOMDocument();
$doc->loadHTML($myhtml);

$p = $doc->getElementsByTagName('p');

foreach ($p as $p) {
       echo $p->nodeValue."<br>"."\n";
}


http://www.php.net/manual/ja/function.dom-domdocument-getelementbyid.php
こちらのgetElementByIDのマニュアルを参考に、

echo $doc->getElementById('title')->tagName;
echo $doc->getElementById('title')->nodeValue;

を試みているのですが、何も返されない状態です。

「[PHP-users 28965] 特定タグの文字を抽出するには」を拝見しますと正規表現を使ったほうが良いような
気もするのですが、getElementByIdを使ってのノード取得は可能なのでしょうか?
DOMに対する理解が足りなく、どの階層でechoしているのかも理解できていないのですが、
ご助言いただければ幸いです。よろしくお願いします。


増田
-- 
Masuda <macindows @ forest.ocn.ne.jp>



PHP-users メーリングリストの案内