我使用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>
我没有得到同样的物品。 使用明文,我得到了应该删除的元素
答案 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>",