Вы можете использовать запрос XPath, запрашивающий элементы e
, являющиеся дочерними элементами элементов b
, имеющих элементы d
с текстом YHOO
.
Помните, что SimpleXMLElement::xpath()
вернет массив элементов, даже если XPath найдет только один: следовательно, $urls[0]
, чтобы получить первый (единственный) элемент.
$xml = '<stk status="ok"><a><b><c>Yahoo</c><d>YHOO</d><e>http://www.yahoo.com</e></b><b><c>Google</c><d>GOOG</d><e>http://www.google.com</e></b><b><c>Microsoft</c><d>MSFT</d><e>http://www.microsoft.com</e></b></a></stk>';
$stk = simplexml_load_string($xml);
$urls = $stk->xpath('/stk/a/b[d="YHOO"]/e');
$yhoo = (string) $urls[0];
echo $yhoo;