PHP DOMDocument, finding specific elements

2019-02-20 04:55发布

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;

2条回答
Melony?
2楼-- · 2019-02-20 05:15
$xpath = new DomXPath($doc);
$result = $xpath->evaluate('//div[@class=uniqueClass]/span/@style');
查看更多
Melony?
3楼-- · 2019-02-20 05:28

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')
查看更多
登录 后发表回答