我有像
这样的表格<html>
<body>
<table id="data" class="outer">
<tr><td>Date</td><td>12-09-12</td></tr>
<tr><td>Price</td><td>15.00</td></tr>
<tr><td>Count</td><td>67</td></tr>
</table>
</body>
</html>
我必须解析这个以超过100的放弃 但是我无法知道“Date”“12-09-12”的值如何可以用数据库值中的新值替换。
请给我一个小例子
$html = new simple_html_dom();
$html->load_file($page);
$items = $html->find('Date');
`
$s = '<html>
<body>
<table id="data" class="outer">
<tr><td>Date</td><td>12-09-12</td></tr>
<tr><td>Price</td><td>15.00</td></tr>
<tr><td>Count</td><td>67</td></tr>
</table>
</body>
</html>';
$document = new DOMDocument();
$document->loadHTML($s);
$oElement = $document->getElementById('data');
$tds = $oElement->getElementsByTagName('td');
if( 'td' == strtolower($tds->item(0)->tagName) AND 'date' == strtolower($tds->item(0)->nodeValue) )
{
echo 'Old value: ' . $tds->item(1)->nodeValue;
echo '<hr/>';
$tds->item(1)->nodeValue = '13-08-11';
echo $document->saveHTML(); //output modified HTML
}
?>
`任何人都可以帮助我吗?
答案 0 :(得分:1)
可以使用DOMDocument完成。
<?php
$s = '<html>
<body>
<table id="data" class="outer">
<tr><td>Date</td><td>12-09-12</td></tr>
<tr><td>Price</td><td>15.00</td></tr>
<tr><td>Count</td><td>67</td></tr>
</table>
</body>
</html>';
$document = new DOMDocument();
$document->loadHTML($s);
$oElement = $document->getElementById('data');
if($oElement)
{
$tds = $oElement->firstChild->childNodes;
if( 'td' == strtolower($tds->item(0)->tagName) AND 'date' == strtolower($tds->item(0)->nodeValue) )
{
echo 'Old value: ' . $tds->item(1)->nodeValue;
echo '<hr/>';
$tds->item(1)->nodeValue = '13-08-11';
echo $document->saveHTML(); //output modified HTML
}
}
else
{
echo 'No elements found with id="data"';
}
答案 1 :(得分:1)
使用Simple HTML DOM包可以像这样完成。
$s = '<html>
<body>
<table id="data" class="outer">
<tr><td>Date</td><td>12-09-12</td></tr>
<tr><td>Price</td><td>15.00</td></tr>
<tr><td>Count</td><td>67</td></tr>
</table>
</body>
</html>';
include 'simple_html_dom.php';
$html = str_get_html($s);
$html->find('table#data tr td', 1)->innertext = '13-08-11';
echo $html;
table#data tr td
选择器使用id="data"
查找TABLE中TR标记内的所有TD标记。 $html->find('table#data tr td', 1)
返回找到的第二个元素(索引为1)。
答案 2 :(得分:0)
<html>
<body>
<table id="data" class="outer">
<tr><td>Date</td><td id="date">12-09-12</td></tr>
<tr><td>Price</td><td>15.00</td></tr>
<tr><td>Count</td><td>67</td></tr>
</table>
</body>
</html>
在javascript中:
var date = <?=$_row['date']?>;
$('date').html('date');