-3

我有桌子

<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 的 put 但我无法获得如何用数据库值中的新值替换 "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
}
?>

`谁能帮助我?

4

3 回答 3

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"';
}
于 2012-11-09T07:33:11.360 回答
1

使用简单的 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". $html->find('table#data tr td', 1)返回第二个找到的元素(索引为 1)。

于 2012-11-09T09:01:13.823 回答
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');
于 2012-11-09T07:14:39.957 回答