我正在使用 phpmyadmin 更改資料庫,其中包含多個 html 頁面,我想從所有這些頁面中洗掉<div>包含某個class或id.
例子:
情況1
<div class="undesirable">
<div class="container">
<div class="row">
<div class="col1"></div>
</div>
</div>
</div>
案例二
<div class="undesirable">
<div class="container">
<div class="row">
<div class="col1"></div>
<div class="col2"></div>
</div>
</div>
</div>
我想洗掉所有<div>包含. 在某些情況下,仍然有可能顯示為或類似的東西。
最初我想使用regex,但是由于 htmls 存在變化,因此會發生代碼中斷,因為無法知道<\div>will 何時結束。答案可能是 HTML 決議器,但我不明白如何使用它。任何跡象表明從哪里開始?
uj5u.com熱心網友回復:
由于您正在處理 html,您可能應該使用 html 決議器并使用 xpath 搜索洗掉目標。為了演示,我將稍微更改您的 html:
$original=
'<html><body>
<div class="undesirable">
<div class="container">
<div class="row">
<div class="col1"></div>
</div>
</div>
</div>
<div class="keepme">
<div class="container">
<div class="row">
<div class="col1"></div>
<div class="col2"></div>
</div>
</div>
</div>
<div class="pre_undesirable">
<div class="container">
<div class="row">
<div class="col1"></div>
<div class="col2"></div>
</div>
</div>
</div>
<div class="keepme">
<div class="container">
<div class="row">
<div class="col1"></div>
<div class="col2"></div>
</div>
</div>
</div>
</body>
</html>
';
$HTMLDoc = new DOMDocument();
$HTMLDoc->loadHTML($original);
$xpath = new DOMXPath($HTMLDoc);
$targets = $xpath->query('//div[contains(@class,"undesirable")]');
foreach($targets as $target){
$target->parentNode->removeChild($target);
}
echo $HTMLDoc->saveHTML();
輸出應該只包括兩個“keep me” <div>。
uj5u.com熱心網友回復:
我們可以使用 D3JS 通過類名或 id 洗掉或附加任何 HTML 元素。我們可以使用 Select() 和 Selectall() 來選擇 HTML 中的特定元素。如果我們想附加任何 div 標簽,請使用 append('div') 為資料插入 div。
<script>
function remove()
{
d3.select(.undesirable)
.selectAll("li")
.exit()
.remove()
}
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378406.html
上一篇:多行到PHP關聯陣列
