DOMDocument::getElementById

(PHP 5, PHP 7, PHP 8)

DOMDocument::getElementByIdBusca un elemento con un cierto identificador

Descripción

public DOMDocument::getElementById(string $elementId): ?DOMElement

Esta función es similar a la función DOMDocument::getElementsByTagName pero busca un elemento con un identificador dado.

Para que esta función funcione, es necesario definir los atributos ID con DOMElement::setIdAttribute o definir una DTD que defina un atributo que debe ser de tipo ID. En el último caso, es necesario validar el documento con DOMDocument::validate o DOMDocument::$validateOnParse antes de utilizar esta función.

Parámetros

elementId

El valor del identificador único para un elemento.

Valores devueltos

Devuelve un DOMElement o null si el elemento no es encontrado.

Ejemplos

Ejemplo #1 Ejemplo con DOMDocument::getElementById()

Los siguientes ejemplos usan book.xml, cuyo contenido es el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
  <!ELEMENT books   (book+)>
  <!ELEMENT book    (title, author+, xhtml:blurb?)>
  <!ELEMENT title   (#PCDATA)>
  <!ELEMENT blurb   (#PCDATA)>
  <!ELEMENT author  (#PCDATA)>
  <!ATTLIST books   xmlns        CDATA  #IMPLIED>
  <!ATTLIST books   xmlns:xhtml  CDATA  #IMPLIED>
  <!ATTLIST book    id           ID     #IMPLIED>
  <!ATTLIST author  email        CDATA  #IMPLIED>
]>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<books xmlns="http://books.php/" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <book id="php-basics">
    <title>PHP Basics</title>
    <author email="jim.smith@basics.php">Jim Smith</author>
    <author email="jane.smith@basics.php">Jane Smith</author>
    <xhtml:blurb><![CDATA[
<p><em>PHP Basics</em> provides an introduction to PHP.</p>
]]></xhtml:blurb>
  </book>
  <book id="php-advanced">
    <title>PHP Advanced Programming</title>
    <author email="jon.doe@advanced.php">Jon Doe</author>
  </book>
</books>
<?php

$doc
= new DomDocument;

// Es necesario validar el documento antes de referirse al ID
$doc->validateOnParse = true;
$doc->load('examples/book.xml');

echo
"El elemento cuyo ID es 'php-basics' es: " . $doc->getElementById('php-basics')->tagName . "\n";

?>

El resultado del ejemplo sería:

El elemento cuyo ID es 'php-basics' es: chapter

Ver también