PHP
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: Fri, 27 Jun 2008

view this page in

DOMDocument::getElementById

(No version information available, might be only in CVS)

DOMDocument::getElementById — Searches for an element with a certain id

Opis

DOMElement DOMDocument::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.

Parametry

elementId

The unique id value for an element.

Zwracane wartości

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

Przykłady

Example #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";

?>

Powyższy przykład wyświetli:

The element whose id is books is: chapter


add a note add a note User Contributed Notes
DOMDocument::getElementById
dagfinn at reiersol dot com
18-Sep-2007 11:06
Here is an updated link to the getElementById() pitfalls page:

http://wiki.flux-cms.org/display/BLOG/GetElementById+Pitfalls
simon at somewhere dot com
30-Jan-2007 05: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 05: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 03: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 04: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 01: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 01:37
http://wiki.bitflux.org/GetElementById_Pitfalls has an overview, of how to make getElementById work with aribtrary XML documents.

 
show source | credits | sitemap | contact | advertising | mirror sites