Не используйте регулярные выражения для разбора XML!
Оператор Потомок (двойная косая черта) в xpath будет искать совпадения для всех потомков.
$matches = $simplexmlelementobject->xpath('//nameOfElement');
Выше эквивалентно методу DOM getElementsByTagName
Если у вас есть общее представление о том, где находится элемент, вы можете использовать оператор-потомок для поиска ниже определенного узла:
$matches = $simplexmlelementobject->xpath('someparentelement[@conditionalattr=something]//nameOfDescendantElementYouWant');
Если вам нужно использовать DOMDocument
вместо SimpleXML
, вы можете при необходимости выполнить инструкции xpath с объектом DOMXPath
. (Оставлено как упражнение для читателя.)