6

これが私のコードの一部です...

$dom = new DomDocument;
$html = $newIDs[0];
$dom->validateOnParse = true;
$dom->loadHTML($html);
$dom->preserveWhiteSpace = true;
$tryID = $dom->getElementById('ID');
echo $tryID;

Webサイトから複数の特定のIDを取得しようとしていますが、これは1つだけを示しており、ここを含むすべての場所でこのメソッドを見てきましたが、何かを印刷しようとすると何も表示されません。私はそれが何かを読んでいるかどうかを確認するためにテストしてみました

if(!$tryID)
{
    ("Element not found");
}

しかし、それを印刷することもありません。最後に、私は使用しました

echo $tryID->nodeValue;

そしてまだ何も...誰かが私が間違っていることを知っていますか?

また、これが機能する場合、同じ$ dom上の異なる変数に複数の異なるものを読み取ることができますか?それが理にかなっているなら。

4

1 に答える 1

4

さて、あなたの解決策です。

DIVの場合:

<div id="divID" name="notWorking">This is not working!</div>

これは行います:

<?php

    $dom = new DOMDocument("1.0", "utf-8");
    $dom->loadHTMLFile('YourFile.html');
    $div = $dom->getElementById('divID');

    echo $div->textContent;

    $div->setAttribute("name", "yesItWorks");
?>

よくできたXMLまたはXHTMLコンテンツを渡して、変更する限り、ファイルがなくても機能するはずです。

$dom->loadHTMLFile('YourFile.html');

あなたに

$dom->loadHTML($html);

そうそう、そしてもちろん、内容を変更するには(完全を期すために):

$div->removeChild($div->firstChild);
$newText = new DOMText('Yes this works!');
$div->appendChild($newText);

その後、もう一度エコーするか何かをすることができます。

于 2012-11-06T03:08:50.500 に答える