2017-07-11 19 views
0

私のプロジェクトでPHP Simple HTML DOM Parserライブラリを使用していますが、私は方法の仕組みを作る方法を見つけることができません。PHPを単純なHTML - どのように要素にDOMを変換する

まずはDOMオブジェクトに文字列を変換:

$html = str_get_html($rarr[$i]); 

$rarr変数は、HTML文字列要素のアレイです。私は彼らのclasstitle属性を削除したいので、私は次のコードを使用し

$html = $html->removeAttribute('class'); 
$html = $html->removeAttribute('title'); 

を私は次のエラーを取得する:

Fatal error: Call to undefined method simple_html_dom::removeAttribute() in /scripts/defios.php on line 198

Documentationによると、str_get_html()からDOMオブジェクトを作成します。文字列。と私はremoveAttribute()メソッドがDOMメソッドではなく、Elementメソッドであると思います。そのため、エラーが発生します。だから私は何とかDOMをElementに変換する必要があります。私はfind()メソッドは、ジョブを行うだろうと思うが、問題は、配列のhtml要素がランダムに(いくつかのdiv、スパンであり、彼らは共通のクラスやIDを持っていない)ので、私はそれを使用することはできませんこの方法は本当に私を助けません。 DOMそのものは要素なので、DOM内で何かを選択するのではなく、DOM全体を要素に変換したいと思っています。

私がする必要があるのは、そのクラスとタイトルを削除することです。

+0

あなたは私の答えは参考になりまし見つかりませんか?どのように改善するか教えてください。ありがとう。 – MackProgramsAlot

答えて

2

ここで私はそれらを削除します方法は次のとおりです。

foreach($html->find('[class]') as $el) $el->removeAttribute('class'); 
foreach($html->find('[title]') as $el) $el->removeAttribute('title'); 
1

鍵は子供の属性にアクセスすることです:次の例を見て、それを調整してください!

$html = str_get_html($rarr[$i]); 
    foreach($html as $e) 
    { 
     $tag = $e->children[0]; // get the outer most element 
     $tag->removeAttribute('class'); 
     $tag->removeAttribute('title'); 
    } 
関連する問題