PHP: DOMDocument->getElementById() - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DOMDocument->getElementsByTagName() DOMDocument->createTextNode()

Last updated: Sat, 27 Jan 2007

view this page in

# DOMDocument->getElementById()

(no version information, might be only in CVS)

DOMDocument->getElementById() -- Searches for an element with a certain id

## Описание

class DOMDocument {
DOMElement getElementById ( string elementId )
}

This function is similar to DOMDocument->getElementsByTagName() but searches for an element with a given id.

For this function to work, you will need either to set some ID attributes with DOMElement->setIdAttribute() or a DTD which defines an attribute to be of type ID. In the later case, you will need to validate your document with DOMDocument->validate() or `DOMDocument->validateOnParse` before using this function.

## Список параметров

`elementId`

  The unique id value for an element.

## Возвращаемые значения

Returns the DOMElement or `NULL` if the element is not found.

## Примеры

Пример 1. DOMDocument->getElementById() Example

`<?php
$doc = new DomDocument;
// We need to validate our document before refering to the id
$doc->validateOnParse = true;
$doc->Load('book.xml');
echo "The element whose id is books is: " . $doc->getElementById('books')->tagName . "\n";
?>`

Результат выполнения данного примера:

    The element whose id is books is: chapter

## Смотрите также

DOMDocument->getElementsByTagName()

add a note User Contributed Notes
DOMDocument->getElementById()
simon at somewhere dot com
29-Jan-2007 08:07
`SAVE YOURSELF A MAJOR HEADACHE AND A LOT OF SEARCHING THROUGH DOCUMENTATION -
Instead of using $object->setAttribute('id', 'id_name_here')
USE THIS: $object->setAttribute('xml:id', 'id_name_here')
Then, to get the node value: $domDocumentObject->getElementById('id_name_here');
The xml:id attribute should AUTOMATICALLY be defined!!
Woohoo! That was easy......`
jonbarnett at gmail dot com
01-Nov-2006 08:36
`If your XML document does not have a DTD that defines the "id" attribute as an ID, then the easiest thing to do is to use XPath->query() to find an element that matches "//[@id='x']"`
Tangui dot Le-Pense at laposte dot net
08-Apr-2006 06:00
`Validating a document from a DTD so as to use getElementById is sometimes impossible (for example when the head and body elements are not included yet in a XHtml document : the validation failed).
Fortunately, xml:id is supported by this function :)
That may be useful.
http://www.w3.org/TR/xml-id/`
20-Dec-2005 07:04
`If you're trying to use getElementById with a xml file validated on a xsd file you must first use the schemaValidate function or getElementById will return null
Example:
$dom = new DomDocument();
$dom->load("users.xml");
$dom->schemaValidate("users.xsd");
$curruser = $dom->getElementById($user->name);`
bart at mediawave dot nl
11-Sep-2005 04:46
`It seems getElementById works fine without setting validateOnParse to true. Which is nice since setting this to true caused some performance problems with my script.`
chregu at php dot net
02-Jul-2004 04:37
`http://wiki.bitflux.org/GetElementById_Pitfalls has an overview, of how to make getElementById work with aribtrary XML documents.`
add a note
DOMDocument->getElementsByTagName() DOMDocument->createTextNode()

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 09:32:46 2007 PST