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 — Lit les éléments par nom de balise
Description
array get_elements_by_tagname
( string $name
)
Récupère tous les sous éléments avec un nom spécifique name à l'intérieur de l'élément courant.
Liste de paramètres
- name
-
Le nom de l'attribut cherché.
Valeurs de retour
Retourne un tableau d'objets DomElement.
Exemples
Exemple #1 Récupération d'un contenu
<?php
if (!$dom = domxml_open_mem($xmlstr)) {
echo "Erreur pendant le parsage du 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";
}
?>
Migration vers PHP 5
Utilisez DOMElement::getElementsByTagName.
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);
