2010-08-26 121 views
0

正则表达式是不是我的专长,可能真的帮助做匹配和更换如下:需要一个正则表达式解析HTML标签

在一个HTML文件,我有这样的HTML的很多实例:

<font class=font8>text text text</font> 

字体标签可以在单个单词或多个单词中包含不同的内容,包含空格和数字。

我需要找到的这所有实例,并替换为:

<span class="bold">(text that was there)</span> 

感谢 詹姆斯

PS:从字,它生成的HTML为什么如此糟糕:O)

+9

请参阅http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Robert 2010-08-26 17:13:49

+0

可能重复[如何解析和处理与PHP的HTML?](http://stackoverflow.com/questions/3577641/how-to-parse-and-process-html-with-php) – PeeHaa 2012-01-16 19:57:20

回答

4

使用getElementsByTagName('font')DOMDocument::loadHTML方法并遍历基于->length的节点列表,然后createElement('span')setAttribute为类名称值粗体,请执行replaceChild来替换它。

参考的DOM:http://php.net/manual/en/book.dom.php

+0

我似乎无法弄清楚如何用这个。我能得到尽可能的replaceChild但它不工作... 为($ I = 0; $ I < $dom->的getElementsByTagName( '字型') - >长度; $ I ++){ \t $为newElement = $ dom- >的createElement( '跨度'); \t $ dom-> replaceChild($ dom-> getElementsByTagName('font') - > item($ i),$ newElement); } – jodm 2010-08-26 19:51:06