views:

202

answers:

2

I'm looking to find a specific attribute of a specific tag in an HTML document using PHP DOMDocument.

Specifically, there is a div with a unique class set, and only a single span inside of it. I need to retrieve the style attribute of that span tag.

Example:

<div class="uniqueClass"><span style="text-align: center;" /></div>

For this example, with the uniqueClass being the only instance of that class in the document, I would need to retrieve the string:

text-align: center;

Thanks!

+3  A: 

You have to use DOMXPAth class

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

$doc->loadHTML($htmlSource);

$xpath = new DOMXPath($doc);

// We starts from the root element
$query = '//div[@class= uniqueClass]/span';

$entries = $xpath->query($query);

$spanStyle = $entries->current()->getAttribute('style')
Ololo
Damn my slow typing, that's pretty much exactly the same solution I was going to suggest :)
Steve
Aha, "xpath". I shall do the requisite research on that.Thanks!
Slyder
+1  A: 
$xpath = new DomXPath($doc);
$result = $xpath->evaluate('//div[@class=uniqueClass]/span/@style');
Scharrels