我有一个简单的HTML文件,我需要从中读取一些值并更改HTML电子邮件输出的结构。我是脚本/ PHP /导航DOM的新手,所以如果这是一个简单的问题,请原谅我。
以下是初始输出:
<table id="Table_01" width="600" height="547" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">
<img src="header.jpg" width="600" height="295" border="0" alt="Alt Text 1"></td>
</tr>
<tr>
<td>
<a href="http://url.com/1">
<img src="leftcell_link1.jpg" width="300" height="163" border="0" alt="Alt Text Left"></a></td>
<td>
<a href="http://url.com/2">
<img src="rightcell_link2.jpg" width="300" height="163" border="0" alt="Alt Text Right"></a></td>
</tr>
<tr>
<td colspan="2">
<a href="http://url.com/3">
<img src="body_link3.jpg" width="600" height="89" border="0" alt="Body Alt"></a></td>
</tr>
</table>
这是所需的输出:
<table id="Table_01" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" width="100%">
<img src="header.jpg" border="0" alt="Alt Text 1"></td>
</tr>
<tr>
<td width="50%">
<a href="http://url.com/1" name="link1">
<img src="leftcell_link1.jpg" border="0" alt="Alt Text Left" name="link1"></a></td>
<td width="50%">
<a href="http://url.com/2" name="link2">
<img src="rightcell_link2.jpg" border="0" alt="Alt Text Right" name="link2"></a></td>
</tr>
<tr>
<td colspan="2" width="100%">
<a href="http://url.com/3" name="link3">
<img src="body_link3.jpg" border="0" alt="Body Alt" name="link3"></a></td>
</tr>
</table>
有些注意事项
我是否最好将整个事物解构为所需元素属性的数组,然后以正确的格式重构它?或者更容易循环遍历DOM并查找我需要的属性然后将它们应用于父级并删除不需要的属性?
有没有办法以递归方式处理这一切,这样我就不需要根据它是否在&#34; td&#34; &#34;&#34;或&#34; img&#34;水平?
答案 0 :(得分:0)
您可以使用DOMDocument类更改所需内容。
<?php
$doc = new DOMDocument();
$doc->loadHTML('<table id="Table_01" width="600" height="547" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2"> <img src="header.jpg" width="600" height="295" border="0" alt="Alt Text 1"></td> </tr> <tr> <td> <a href="http://url.com/1"> <img src="leftcell_link1.jpg" width="300" height="163" border="0" alt="Alt Text Left"></a></td> <td> <a href="http://url.com/2"> <img src="rightcell_link2.jpg" width="300" height="163" border="0" alt="Alt Text Right"></a></td> </tr> <tr> <td colspan="2"> <a href="http://url.com/3"> <img src="body_link3.jpg" width="600" height="89" border="0" alt="Body Alt"></a></td> </tr> </table>');
$tds = $doc->getElementsByTagName('td');
$tds[0]->setAttribute('width', '100%');
$tds[1]->setAttribute('width', '50%');
$tds[2]->setAttribute('width', '100%');
var_dump($doc->saveHTML());
?>
结果:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
...
<td colspan="2" width="100%">
...
<td width="50%">
...
<td width="100%">
...
</html>