PHP DOMDocument, finding specific elements

2019-02-20 05:02发布

问题:

I'm looking to find a specific attribute of a specific element 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 element.

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;

回答1:

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')


回答2:

$xpath = new DomXPath($doc);
$result = $xpath->evaluate('//div[@class=uniqueClass]/span/@style');