Я думаю, что это получает первый элемент, называемый <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);
Не проверял его, поэтому могут быть ошибки, опечатки или что-то еще.