不采用简单的Dom HTML更改

时间:2013-04-10 18:14:15

标签: element simple-html-dom

我使用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>

我没有得到同样的物品。 使用明文,我得到了应该删除的元素

1 个答案:

答案 0 :(得分:1)

当处理信息时,这三个属性(outertext,innertext和plaintext)似乎是分开的,存储在多维数组中:

如果使用&#34; outerText&#34;更改元素,则其他两个属性不会更改:

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

如果您使用&#34;明文&#34;进行更改。

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

只有&#34; InnerText&#34;属性会影响其他两个属性......

element1    plaintext: "text 2"
            outerText: "<div> text 2 </ div>",
            InnerText: "text 2"                   
如果你使用&#34; href&#34;更改元素,则

它会影响&#34; outertext&#34;值。

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

用&#34; outerText&#34;反向改变不影响&#34; href&#34;。

element1    href :     "link1",
            outerText: "<a href="link2"> </a>",
相关问题