2013-06-28 25 views
-1

通過DOM文檔和的getElementById()獲得價值這是我的HTML代碼:不能在PHP

<tr> 
    <td class="serviceOK">Total</td> 
    <td class="serviceOK">0d 0h 0m 0s</td> 
    <td id="test" class="serviceOK">0.000%</td> 
    <td class="serviceOK">0.000%</td> 
</tr> 

,這是我的PHP代碼:

$doc = new DOMDocument(); 
$doc->validateOnParse = true; 
@$doc->loadHTML($report); //$report is actually my HTML code. 
echo $doc->saveHTML(); //echoes everything successfully. 

$run = $doc->getElementById('test'); 
echo $run; //echoes Nothing 
var_dump($run); //echoes NULL 

我使用PHP DOMDocument到解析我的HTML代碼並使用id =「test」檢索該元素中的值,但它不迴應任何內容。有什麼我失蹤?

+1

你也可以使用jquery。 –

+0

嘗試'$ doc-> getElementById('test') - > tagName;'並參見 – 2013-06-28 19:55:58

+1

@sharif - jquery與此無關。 Zim3r解析它的服務器端。 – Joe

回答

1

$run是一個DOMElement對象;你需要抓住它的nodeValue:echo $run->nodeValue;

證明:http://phpfiddle.org/main/code/c5s-8pe

編輯:既然你var_dump被返回null,你需要檢查你的HTML。它不能被解析,和/或DOM中有多個ID具有相同的ID - 不應該發生(ID應爲唯一

+0

然後他的問題在別處 –

+0

更新的答案 –

+0

+1 - 很難判斷問題中的信息有什麼問題,但很可能是重複的ID或類似的東西 – Joe

1

是您的PHP代碼寫在HTML代碼之後?也許它找不到元素,因爲腳本是在元素形成前運行的

+0

哦,對。那麼可能在引號中存在一些問題,所以HTML沒有正確解析。 – 2013-06-28 20:08:11

+0

是的這是,但我認爲在這裏我有一個服務器上的問題。評論Rob的帖子。 – Zim3r