2013-08-29 51 views
2

我試圖通過標識獲取元素。但我不成功。爲什麼以下內容無法找到具有給定ID的元素?DOMDocument - 爲getElementById設置有效標識

我已經建立了一個測試案例:

<?php 

$m_oDom = new DOMDocument('1.0', 'UTF-8'); 
$m_oDom->formatOutput = true; 
$m_oDom->preserveWhiteSpace = false; 
$m_oDom->validateOnParse = true; 

$strId = "abc"; 

$oElement = $m_oDom->createElement('div');  

$oAttribute = $oElement->setAttribute('id', $strId); 

$oElement->setIdAttribute('id', false); // tried also without this 

$oElement->appendChild($oAttribute); 

// $oAttribute = $oElement->getAttributeNode('id'); 

$b = $oAttribute->isId(); 

if($b) { 
    echo "true"; 
} else { 
    echo "false"; // says false 
} 

$oElement = $m_oDom->getElementById($strId); 

if($oElement) { 
    echo "element"; 
} else { 
    echo "false"; // says false 
} 

?> 
+0

_「爲什麼以下內容無法找到具有給定ID的元素?」 - 因爲您沒有設置實際ID,您只是創建了一個名稱爲「ID」的屬性。請閱讀'setIdAttribute'和'getElementById'手冊! – CBroe

回答

1

我想你想是這樣的:

$oElement = $m_oDom->createElement('div');  

$oAttribute = $oElement->setAttribute('id', $strId); 

$oElement->setIdAttribute('id', true); // tried also without this 

$m_oDom->appendChild($oElement); 

它返回true,元件輸出到我。

+0

啊!謝謝你,我誤解了'setIdAttribute'上的文檔。當然,將'false'改爲'true' – Patrick