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

search for in the

DomElement->has_attribute> <DomElement->get_attribute
Last updated: Fri, 21 Nov 2008

view this page in

DomElement->get_elements_by_tagname

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

DomElement->get_elements_by_tagname Gets elements by tagname

Описание

array get_elements_by_tagname ( string $name )

Gets all the sub elements with the specific name within the current element.

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

name

The name of the seeked element.

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

Returns an array of DomElement objects.

Примеры

Пример #1 Getting a content

<?php
if (!$dom domxml_open_mem($xmlstr)) {
  echo 
"Error while parsing the document\n";
  exit;
}

$root $dom->document_element();

$node_array $root->get_elements_by_tagname('element');

foreach (
$node_array as $node) {
    echo 
' - ' $node->get_content() . "\n";
}

?>

Migrating to PHP 5

Use DOMElement::getElementsByTagName.



DomElement->has_attribute> <DomElement->get_attribute
Last updated: Fri, 21 Nov 2008
 
add a note add a note User Contributed Notes
DomElement->get_elements_by_tagname
mikhail dot nemtsev at gmail dot com
23-Aug-2008 08:21
This example uses get_elements_by_tagname() and child_nodes() to output the contents of the xml file. The sample xml file and php code are below.

<?xml version="1.0" encoding="iso-8859-1"?>
<dictionary>
 <entry>
    <word>Hello</word>
    <meaning>used to express a greeting</meaning>
    <example>Hello World!</example>
 </entry>
</dictionary>

<?php
$xml_path
= "/some/dir/dictionary.xml";
    if (!
$dom = domxml_open_file($xml_path)) {
       
//the above requires absolube path
       
exit("Could not access the XML source.");
    }
   
$root = $dom->document_element(); //obtain the root
   
$array_entry = $root->get_elements_by_tagname("entry"); //gets all <entry> DomElems
   
foreach ($array_entry as $entry_dom_elem) {   
       
$childnodes = $entry_dom_elem->child_nodes();
        foreach (
$childnodes as $child) { //cycle thru <word>, <meaning>, <example>
           
echo "node name: ".$child->tagname() . "; contains: " . $child->get_content()."<br>";
           
        }
    }
?>
The above code outputs:
node name: word; contains: Hello
node name: meaning; contains: used to express a greeting
node name: example; contains: Hello World!
php dot net dot 3 dot jdoe at spamgourmet dot com
30-Mar-2004 10:55
Function get_elements_by_tagname() is only defined for the DocumentRoot-Element rather than for any DocumentElement.
chregu at php dot net
30-Oct-2002 07:02
if you want to search for tagnames with namespaces, do it the following way:
(it's a work around, not a really proper solution..)

$dom = domxml_open_mem($xmlval);
$ctx=xpath_new_context($dom);
$ctx->xpath_register_ns("yns","http://your.name.space/uri");
$nodes = $dom->get_elements_by_tagname("yns:tagname",$ctx);

DomElement->has_attribute> <DomElement->get_attribute
Last updated: Fri, 21 Nov 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites