parentnode getelementsbytagnamens example domnodelist array php xml dom

getelementsbytagnamens - nodes php



php getElementsByTagName con un atributo especĂ­fico (2)

Creo que esto obtiene el primer elemento llamado <gallery>

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

Estoy tratando de obtener <gallery name="Third">

Creo que necesito algo equivalente a:

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

Gracias, Andy


Como su nombre indica, getElementsByTagName () solo acepta nombres de etiquetas. Pruebe XPath en su lugar

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

No lo probé, por lo que puede haber errores, errores tipográficos o algo así.


Esto solo es posible con DOMXPath , por ejemplo

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

o al iterar sobre la lista de nodos después de la llamada a getElementsByTagName con

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