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

search for in the

DomElement->has_attribute()> <DomElement->get_attribute()
Last updated: Fri, 22 Aug 2008

view this page in

DomElement->get_elements_by_tagname()

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

DomElement->get_elements_by_tagname() Obtiene elementos por el nombre de etiqueta

Descripción

DomElement
array get_elements_by_tagname ( string $nombre )

Obtiene todos los sub-elementos con el nombre específico al interior del elemento actual.

Lista de parámetros

nombre

El nombre del elemento buscado.

Valores retornados

Devuelve una matriz de objetos DomElement.

Ejemplos

Example #1 Obtener el contenido

<?php
if (!$dom domxml_open_mem($cadena_xml)) {
  echo 
"Ocurri&oacute; un error al analizar el documento\n";
  exit;
}

$raiz $dom->document_element();

$matriz_nodos $raiz->get_elements_by_tagname('element');

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

?>

Migración a PHP 5

Use Material que falta.



DomElement->has_attribute()> <DomElement->get_attribute()
Last updated: Fri, 22 Aug 2008
 
add a note add a note User Contributed Notes
DomElement->get_elements_by_tagname()
mikhail dot nemtsev at gmail dot com
24-Aug-2008 05: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 08: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 04: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, 22 Aug 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites