在HTML DOM中按ID获取元素

时间:2013-09-17 23:12:31

标签: php dom domdocument

我正在尝试获取某些div的内容 html结构是这样的:

<div id="event-pane" class="class1">
   <div id="e170923" class="class2">
   <div id="e170948" class="class2">
   <div id="e170923" class="class2">

我试图让div为id="exxxxxx",而xxxxxx为$ event_id

我正在使用file_get_contants和DOM 这是我的代码:

<?php

    $event_id = $_GET['eventId'];

    //Get the url
    $url = "static/section35.html";
    $html = file_get_contents($url);
    $doc = new DOMDocument(); // create DOMDocument
    libxml_use_internal_errors(true);
    $doc->loadHTML($html); // load HTML you can add $html
    if($html) {
    $divs = $doc->getElementById('e. $event_id, 0');

    $elements = $doc->getElementsByTagName('tbody');

    $toRemove = array();

    // gather a list of tbodys to remove
    foreach($elements as $el)
      if((strpos($el->nodeValue, 'desktop') !== false) && !in_array($el->parentNode, $toRemove, true))
        $toRemove[] = $el->parentNode;    

            foreach($elements as $el)
      if((strpos($el->nodeValue, 'Recommended') !== false) && !in_array($el->parentNode, $toRemove, true))
        $toRemove[] = $el->parentNode;  

    // remove them
    foreach($toRemove as $tbody)
      $tbody->parentNode->removeChild($tbody);

    echo str_replace(array('style="display: none;','</h3><table','http://www.drakulastream.eu'),array('', '<table',''),$doc->saveHTML());
}
  else {
        echo "<center><h3 style='color:#003366;'>There are no events today</h3></center>";
           }
?>

我不知道代码有什么问题

1 个答案:

答案 0 :(得分:1)

看起来你只是误输了选择器。应该是这样的:

$divs = $doc->getElementById('e' . $event_id);