2014-07-04 67 views
2

我正在處理一個需要使用PHP Simple DOM Dom Parser的項目,並且我需要一種方法將一個自定義屬性添加到一些基於類的元素名稱。如何使用PHP添加自定義屬性簡單的HTML DOM解析器

我能夠通過foreach循環遍歷元素,並且很容易設置標準屬性(如href),但我找不到添加自定義屬性的方法。

我能猜到最接近的是一樣的東西:

foreach($html -> find(".myelems") as $element) { 
    $element->myattr="customvalue"; 
} 

但這不起作用。

我已經看到類似主題的其他一些問題,但他們都建議使用替代方法來解析html(domDocument等)。在我的情況下,這不是一個選項,因爲我必須使用簡單的HTML DOM解析器。

回答

5

你試過了嗎?試試這個例子(例子:添加數據標籤)。

include 'simple_html_dom.php'; 

$html_string = ' 
<style>.myelems{color:green}</style> 
<div> 
    <p class="myelems">text inside 1</p> 
    <p class="myelems">text inside 2</p> 
    <p class="myelems">text inside 3</p> 
    <p>simple text 1</p> 
    <p>simple text 2</p> 
</div> 
'; 

$html = str_get_html($html_string); 
foreach($html->find('div p[class="myelems"]') as $key => $p_tags) { 
    $p_tags->{'data-index'} = $key; 
} 

echo htmlentities($html); 

輸出:

<style>.myelems{color:green}</style> 
<div> 
    <p class="myelems" data-index="0">text inside 1</p> 
    <p class="myelems" data-index="1">text inside 2</p> 
    <p class="myelems" data-index="2">text inside 3</p> 
    <p>simple text 1</p> 
    <p>simple text 2</p> 
</div> 
相關問題