php getElementsByTagName с определенным атрибутом

Я думаю, что это получает первый элемент, называемый <gallery>

 $gallery = $objDOM->getElementsByTagName('gallery')->item(0); 

Я пытаюсь получить <gallery name="Third">

Я думаю, мне нужно что-то эквивалентное:

 $gallery = $objDOM->getElementsByTagName('gallery[@name="Third"]')->item; 

Спасибо, Энди

Это возможно только с DOMXPath , например

 $xp = new DOMXPath($yourDOMDocument); $nodes = $xp->query('//gallery[@name="Third"]'); 

или путем итерации по списку узлов после вызова getElementsByTagName с

 foreach ($objDOM->getElementsByTagName('gallery') as $gallery) { if($gallery->getAttribute('name') === 'Third') { // do something } } 

Как следует из названия, getElementsByTagName () принимает только имена тегов. Попробуйте XPath вместо этого

 $xpath = new DOMXPath ($objDOM); $nodeList = $xpath->query('gallery[@name="Third"]'); $gallery = $nodeList->item(0); 

Не проверял его, поэтому могут быть ошибки, опечатки или что-то еще.