HTMLDOM:使用php根据数据属性值删除特定的div
我是codeigniter的新手。我得到如下所示的html字符串表单数据库HTMLDOM:使用php根据数据属性值删除特定的div,php,html,codeigniter,Php,Html,Codeigniter,我是codeigniter的新手。我得到如下所示的html字符串表单数据库 <div class="rockfm-form-container uiform-wrap"> <div class="rockfm-alert-container"></div> <form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form
<div class="rockfm-form-container uiform-wrap">
<div class="rockfm-alert-container"></div>
<form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form-data" id="rockfm_form_7">
<input type="hidden" value="7" class="_rockfm_form_id" name="_rockfm_form_id">
<input type="hidden" value="0" class="_rockfm_wizard_st" >
<input type="hidden" value="PGRpdiBjbGFzcz0icm9ja2ZtLWFsZXJ0IHJvY2tmbS1hbGVydC1zdWNjZXNzIj5TdWNjZXNzISBGb3JtIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS48L2Rpdj4=" name="_rockfm_onsubm_smsg" class="_rockfm_onsubm_smsg" > <!--- ajax or post --->
<input type="hidden" value="1" class="_rockfm_type_submit" name="_rockfm_type_submit">
<input type="hidden" value="rocket_front_submitajaxmode" name="action">
<div class="uiform-main-form">
<div class="uiform-step-content" >
<div id="rockfm_uiibpy0eewu" data-idfield="uiibpy0eewu" data-typefield="33" class="rockfm-heading rockfm-field " ></div>
<div id="rockfm_uiya0wevyae" data-idfield="uiya0wevyae" data-typefield="28" class="rockfm-preptext rockfm-field rockfm-required " data-val-type="4"></div>
<div id="rockfm_ui04fxilqp6" data-idfield="ui04fxilqp6" data-typefield="7" class="rockfm-textarea rockfm-field " ></div>
<div id="rockfm_uiwdtl19w05" data-idfield="uiwdtl19w05" data-typefield="10" class="rockfm-select rockfm-field " ></div>
<div id="rockfm_uiksx46ggj9" data-idfield="uiksx46ggj9" data-typefield="12" class="rockfm-fileupload rockfm-field " ></div>
<div id="rockfm_ui2jrdo8mcp" data-idfield="ui2jrdo8mcp" data-typefield="20" class="rockfm-submitbtn rockfm-field " ></div>
</div>
</div>
</form>
</div>
请告诉我是否有任何选项只从HTMLDOM中删除特定的div。我希望我的代码输出是这样的
<div class="rockfm-form-container uiform-wrap">
<div class="rockfm-alert-container"></div>
<form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form-data" id="rockfm_form_7">
<input type="hidden" value="7" class="_rockfm_form_id" name="_rockfm_form_id">
<input type="hidden" value="0" class="_rockfm_wizard_st" >
<input type="hidden" value="PGRpdiBjbGFzcz0icm9ja2ZtLWFsZXJ0IHJvY2tmbS1hbGVydC1zdWNjZXNzIj5TdWNjZXNzISBGb3JtIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS48L2Rpdj4=" name="_rockfm_onsubm_smsg" class="_rockfm_onsubm_smsg" > <!--- ajax or post --->
<input type="hidden" value="1" class="_rockfm_type_submit" name="_rockfm_type_submit">
<input type="hidden" value="rocket_front_submitajaxmode" name="action">
<div class="uiform-main-form">
<div class="uiform-step-content" >
<div id="rockfm_uiibpy0eewu" data-idfield="uiibpy0eewu" data-typefield="33" class="rockfm-heading rockfm-field " ></div>
<div id="rockfm_uiya0wevyae" data-idfield="uiya0wevyae" data-typefield="28" class="rockfm-preptext rockfm-field rockfm-required " data-val-type="4"></div>
<div id="rockfm_ui04fxilqp6" data-idfield="ui04fxilqp6" data-typefield="7" class="rockfm-textarea rockfm-field " ></div>
<div id="rockfm_uiksx46ggj9" data-idfield="uiksx46ggj9" data-typefield="12" class="rockfm-fileupload rockfm-field " ></div>
<div id="rockfm_ui2jrdo8mcp" data-idfield="ui2jrdo8mcp" data-typefield="20" class="rockfm-submitbtn rockfm-field " ></div>
</div>
</div>
</form>
</div>
您的代码大部分都在那里,但主要部分是删除节点,我已将测试更改为如果状态为0,则使用
removeChild()
删除元素。那么文档应该只包含您想要在结尾的
元素
foreach ($xpath->query("//div[@data-typefield]") as $item)
{
$typefield = $item->getAttribute('data-typefield');
if($field_array[$typefield] == 0)
{
$item->parentNode->removeChild($item);
}
}
echo $doc->saveHTML();
我正在寻找的这个解决方案非常有效
<div class="rockfm-form-container uiform-wrap">
<div class="rockfm-alert-container"></div>
<form class="rockfm-form" action="" name="" method="post" data-zgfm-type="1" enctype="multipart/form-data" id="rockfm_form_7">
<input type="hidden" value="7" class="_rockfm_form_id" name="_rockfm_form_id">
<input type="hidden" value="0" class="_rockfm_wizard_st" >
<input type="hidden" value="PGRpdiBjbGFzcz0icm9ja2ZtLWFsZXJ0IHJvY2tmbS1hbGVydC1zdWNjZXNzIj5TdWNjZXNzISBGb3JtIHdhcyBzZW50IHN1Y2Nlc3NmdWxseS48L2Rpdj4=" name="_rockfm_onsubm_smsg" class="_rockfm_onsubm_smsg" > <!--- ajax or post --->
<input type="hidden" value="1" class="_rockfm_type_submit" name="_rockfm_type_submit">
<input type="hidden" value="rocket_front_submitajaxmode" name="action">
<div class="uiform-main-form">
<div class="uiform-step-content" >
<div id="rockfm_uiibpy0eewu" data-idfield="uiibpy0eewu" data-typefield="33" class="rockfm-heading rockfm-field " ></div>
<div id="rockfm_uiya0wevyae" data-idfield="uiya0wevyae" data-typefield="28" class="rockfm-preptext rockfm-field rockfm-required " data-val-type="4"></div>
<div id="rockfm_ui04fxilqp6" data-idfield="ui04fxilqp6" data-typefield="7" class="rockfm-textarea rockfm-field " ></div>
<div id="rockfm_uiksx46ggj9" data-idfield="uiksx46ggj9" data-typefield="12" class="rockfm-fileupload rockfm-field " ></div>
<div id="rockfm_ui2jrdo8mcp" data-idfield="ui2jrdo8mcp" data-typefield="20" class="rockfm-submitbtn rockfm-field " ></div>
</div>
</div>
</form>
</div>
foreach ($xpath->query("//div[@data-typefield]") as $item)
{
$typefield = $item->getAttribute('data-typefield');
if($field_array[$typefield] == 0)
{
$item->parentNode->removeChild($item);
}
}
echo $doc->saveHTML();