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!
DomElement->get_elements_by_tagname
(No version information available, might be only in CVS)
DomElement->get_elements_by_tagname — Restituisce l'elemento con il tag dato
Descrizione
array DomElement->get_elements_by_tagname
( string $nome
)
Questa funzione restituisce un array con tutti gli elementi che hanno come nome del tag nome . Ogni elemento dell'array è un oggetto DomElement.
Example #1 Ottenere il contenuto
<?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");
for ($i = 0; $i<count($node_array); $i++) {
$node = $node_array[$i];
echo ("The element[$i] is: ".$node->get_content());
}
?>
DomElement->get_elements_by_tagname
mikhail dot nemtsev at gmail dot com
24-Aug-2008 05:21
24-Aug-2008 05:21
php dot net dot 3 dot jdoe at spamgourmet dot com
30-Mar-2004 08:55
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
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);
