0

I'm very new to PHP, and I know how to do this for any H2 that has an ID for example, because I stumbled upon a nice example:

<?php
$html = file_get_contents('http://pokemondb.net/evolution'); //get the html 
returned from the following url

$pokemon_doc = new DOMDocument();

libxml_use_internal_errors(TRUE); //disable libxml errors

if(!empty($html)){ //if any html is actually returned

$pokemon_doc->loadHTML($html);
libxml_clear_errors(); //remove errors for yucky html

$pokemon_xpath = new DOMXPath($pokemon_doc);

//get all the h2's with an id
$pokemon_row = $pokemon_xpath->query('//h2[@class]');

if($pokemon_row->length > 0){
    foreach($pokemon_row as $row){
        echo $row->nodeValue . "<br/>";
    }
}
}
?>

However I'd like to apply this to a source that uses a div class instead. For ex:

  <div class="marketdata">
  <span class="market_item market_name">NASDAQ</span>
  <span class="market_item market_price">99999</span>
  <span class="market_item market_price  is-positive ">
   +24.38(0.39%)</span>

I figured, maybe just re work the code like this:

//get all the h2's with an id
$pokemon_row = $pokemon_xpath->query('//marketdata[@class]');

However, that doesn't work, it isn't that flexible. I'm needing a new approach to reference the div class. Any thoughts on what it is I need? Really appreciate it! -Wilson

Masteryogurt
  • 199
  • 4
  • 14
  • alternatively, if anyone knows of a working example of just curling a specific div using a different method, that totally works. – Masteryogurt Jun 09 '17 at 03:23
  • See if the following example is what you would like. https://stackoverflow.com/questions/12522465/php-xpath-get-contents-of-div-with-class – chelista Jun 09 '17 at 03:34
  • thank you for that comment. I see the logic there, but not quite able to insert in the working code I have above. Any tips on getting it all to run together? this was the code supplied: foreach($xpath->query('//div[@class="parbase cn_text"]') as $div){ $num++; echo "$num. "; //???? echo $div->textContent; echo "
    "; }
    – Masteryogurt Jun 09 '17 at 03:47

1 Answers1

0

solved. it's not perfect, but this ACTUALLY IS WORKING

<?php 

$doc = new DOMDocument;

// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;

// Most HTML Developers are chimps and produce invalid markup...
$doc->strictErrorChecking = false;
$doc->recover = true;

$doc->loadHTMLFile('http://www.nbcnews.com/business');

$xpath = new DOMXPath($doc);

$query = "//div[@class='market']";

$entries = $xpath->query($query);
var_dump($entries->item(0)->textContent);

?>
Masteryogurt
  • 199
  • 4
  • 14