2011-02-28 35 views
1

我們應該如何檢查以下HTML5屬性的值?PHP dom具有HTML5屬性的getAttribute

<input type="text" required /> 

或者這樣:

<video src="" autoplay></video> 

這是我使用的代碼:

$dom->loadHTML($html); 
$xpath = new DOMXPath($dom);  
$result = $xpath->query('//input'); 

foreach($result as $item) var_dump($item->getAttribute('required')); 

所需的屬性可能會或可能不會進行設置,結果保持不變:

string(0) "" 

如果getAttribute會返回null inst當屬性沒有被定義時,一個空字符串的ead會更有意義。

我知道我們可以使用類似required =「required」的東西,但我無法確定該屬性是否以該形式存在,因爲獲取解析的代碼可能不同。

回答

2

我認爲規則是,如果該屬性存在,然後應用操作。所以嘗試hasAttribute('required')

+0

太棒了!這似乎工作正常。爲什麼我忽略了這個功能? – DADU 2011-02-28 18:35:26

2

嘗試

$item['required'] 

,而不是

$item->getAttribute('required') 
+0

$ item是一個對象,所以我們不能把它當作一個數組來對待。 – DADU 2011-02-28 18:33:44

+3

在php中,如果你實現了ArrayAccess,那麼任何對象都可以用作數組。 (低音__set,__get魔術功能)simplexml也不例外 – 2011-02-28 18:47:14

+0

謝謝,不知道。 – DADU 2011-02-28 22:32:22