如何获取具有指定类及其邻居的HTML元素并将其保存为HTML?
这是我的PHP。这工作正常,但只返回指定类的元素。此代码在具有我正在查找的类的项列表中找到并返回HTML内容。但是我也没有返回项目中的元素。 即我的php只返回带有<a href="">
类的元素cf_sel_opt
,但我还需要让邻居隐藏<input>
。
foreach ($filters_render_array['html'] as $key => $value) {
if (strpos($key, 'custom_f_') !== false) {
$html = new DOMDocument();
$html->loadHTML($value);
$xpath = new DOMXpath($html);
$elements = $xpath->query('//li/*[contains(@class,"cf_sel_opt")]');
if (!is_null($elements)) {
foreach ($elements as $element) {
$array[] = $html->saveHTML($element);
}
}
}
}
if(!empty($array)) { ?>
<div class="filter-reset">
<a class="cf_resetAll_link" rel="nofollow" data-module-id="<?php echo $module->id ?>" href="<?php echo JRoute::_($resetUri)?>">
<span class="cf_resetAll_label"><?php
echo JText::_('MOD_CF_RESET_ALL')?>
</span>
</a>
<div><?php
echo "<ul>";
foreach($array as $sel_item) {
echo "<li>" . $sel_item . "</li>";
}
echo "</ul>"; ?>
</div>
</div><?php
} ?>
HTML
<ul>
<li>
<a href="#" class="cf_option cf_color_btn cf_sel_opt" rel="nofollow" data-module-id="129" id="custom_f_35_129_elid313038_a" style="">
<span class="cf_color_inner" style="background-color:black; width:100%;">
</span>
</a>
<input name="custom_f_35[]" value="313038" type="hidden">
</li>
</ul>
ANSWER
对于任何会遇到类似问题的人,我找到了一个功能性解决方案。 我修改了我的查询:
$elements = $xpath->query('//li/*[contains(@class,"cf_sel_opt")]);
到此:
$elements = $xpath->query('//li/*[contains(@class,"cf_sel_opt")]/ancestor::li[1]');