如何在复杂的DOM元素字符串中隔离特定的嵌套值?

I'm looking to return the value that is nested in the an element containing an href value with john in it (in this example, it is 7 goals). Any help?

<?php
$html_string = '<div class="foo"><a href="../john-smith.html"><span>7 goals</span></a></div><div class="foo2"><h2><a href="../adam-green.html">8 points</a></h2></div>';
echo $isolated_character;

As a variant, you Can use class DomDocument and its Xpath

$d = new DomDocument();
$d->loadHTML($html_string);
$x = new DomXpath($d);
echo $res = $x->evaluate('string(//a[contains(@href, "john")]/span)'); // 7 goals