1

私は simple_html_dom.php を使用します

要素の最初の子を削除したい:

HTML :

<div id="result">
<a class="result_type1" href="#">The title</a>
<span class="item">item</span>
<span class="more">more</span> 
<span class="description">description</span>
</div>

PHP テスト 1:

  foreach($html2->find("div[id=result]") as $element) 
 {


$element->children(0)->outertext=$element->children(1)->outertext;
$element->children(1)->outertext=$element->children(2)->outertext;
$element->children(2)->outertext=$element->children(3)->outertext;
$element->children(3)->outertext="";

echo $element->children(0)->plaintext; 

}

結果 (良くない) :

     The title

PHP テスト 2

  foreach($html2->find("div[id=result]") as $element) 
 {

$element->children(0)->outertext=$element->children(1)->outertext;
$element->children(1)->outertext=$element->children(2)->outertext;
$element->children(2)->outertext=$element->children(3)->outertext;
$element->children(3)->outertext="";

echo $element->children(0)->outertext; 

}

結果 (良い):

       <span class="item">item</span>

また、同じ商品が手に入りません。プレーンテキストで、削除する必要がある要素を取得します

4

1 に答える 1

1

これらの 3 つのプロパティ (outertext、innertext、および plaintext) は、多次元配列に格納されているため、情報が処理されるときに分離されるようです。

「outerText」を使用して要素を変更しても、他の 2 つのプロパティは変更されません。

element1    plaintext: "text 1",
            outerText: "<span> text 2 </ span>",
            InnerText: "text 1"
         

「平文」で変更しても同じです。

element1    plaintext: "text 2"
            outerText: "<div> text 1 </ div>",
            InnerText: "text 1" .

「InnerText」プロパティのみが他の 2 つのプロパティに影響します...

element1    plaintext: "text 2"
            outerText: "<div> text 2 </ div>",
            InnerText: "text 2"                   

逆に、「href」で要素を変更すると、「outertext」値に影響します。

element1    href :     "link2",
            outerText: "<a href="link2"> </a>",

「href」には影響せず、「outerText」で逆に変更します。

element1    href :     "link1",
            outerText: "<a href="link2"> </a>",
于 2015-04-13T03:11:49.833 に答える