Monday 16 December 2019

html - Extract DOM-elements from string, in PHP





Possible Duplicates:
crawling a html page using php?
Best methods to parse HTML







I have one string-variable in my php-script, that contains html-page. How i can extract DOM-elements from this string?



For example, in this string '

text
', i wish get variable 'text'. How i can do this?


Answer



You need to use the DOMDocument class, and, more specifically, its loadHTML method, to load your HTML string to a DOM object.




For example :



$string = <<

test


text

another


HTML;

$dom = new DOMDocument();
$dom->loadHTML($string);




After that, you'll be able to manipulate the DOM, using for instance the DOMXPath class to do XPath queries on it.



For example, in your case, you could use something based on this portion of code :



$xpath = new DOMXpath($dom);
$result = $xpath->query('//div[@class="someclass"]');
if ($result->length > 0) {
var_dump($result->item(0)->nodeValue);

}


Which, here, would get you the following output :



string 'text' (length=4)



As an alternative, instead of DOMDocument, you could also use simplexml_load_string and SimpleXMLElement::xpath -- but for complex manipulations, I generally prefer using DOMDocument.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...