-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を超える出力を出力する必要がありますが、「日付」「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

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セレクターは、TABLE 内の TR タグ内のすべての TD タグを検索しますid="data"$html->find('table#data tr td', 1)見つかった要素の 2 番目を返します (インデックスは 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 に答える