我有這種HTML文檔。將 加入到PHP中未標記的HTML文本中
<span class="class1">text1</span>
<a href="">link1</a>
<font color=""><b>text2</b></font>
<a href="">link2</a>
text3
<span class="class2">text4</span>
而且我想用
s圍繞text1,text2和text3。什麼是最好的方法? DomDocument無法捕獲未標記的字符串。對於text1和text2,可以使用getElementByTagName('tagname')->item(0)
,但對於文本3,我不知道該怎麼做。
任何想法?
[編輯]
由於穆薩建議,我試過使用nextSibling。
<?php
$html = <<<STR
<span class="class1">text1</span>
<a href="">link1</a>
<font color=""><b>text2</b></font>
<a href="">link2</a>
text3
<span class="class2">text4</span>
STR;
$doc = new DOMDocument;
$doc->loadHTML($html);
foreach ($doc->getElementsByTagName('a') as $nodeA) {
$nodeA->nextSibling->nodeValue = ' ' . $nodeA->nextSibling->nodeValue . ' ';
}
echo $doc->saveHtml();
?>
然而,
被逃了出來,轉化爲&nbsp;
如何'getElementByTagName( 'A')[1] .nextSibling' – Musa
謝謝,我更新的初始訊息。 – Teno
由於引擎似乎是逃避角色,你可以在節點前後追加空格。然後引擎可以將它轉換爲' '。 – mrtsherman