Compdigitec Labs

« | Home | »

DOMNodeList as an Array

By admin | August 31, 2008

When using getElementsByTagName, it returns a DOMNodeList which you can use with foreach, but you can’t use array indexes to access elements.

For example, you can use the following code to the contents of the first “test” tag:

<?php
$file
= 'z.xml';
$xmlfile = new DOMDocument();
@
$xmlfile->load($file);
$iplist = $xmlfile->getElementsByTagName('test');
$i = 0;
foreach(
$iplist as $v) {
if(
$i == 0) {
var_dump($v->nodeValue);
}
$i++;
}
?>

Use this as z.xml:
<?xml version="1.0" ?><test>Testing: hello, world</test>

So as you can see, the $iplist variable is acting like an array (via foreach behaviour). But try this code:

<?php
$file
= 'z.xml';
$xmlfile = new DOMDocument();
@
$xmlfile->load($file);
$iplist = $xmlfile->getElementsByTagName('test');
var_dump($iplist[0]->nodeValue);
?>

The error “Fatal error: Cannot use object of type DOMNodeList as array in /usr/dev/php5/error.php on line 6” should occur. To fix this, use $iplist->item(0) instead of $iplist[0], though you can still use DOMNodeList with foreach. The following code should work:

<?php
$file
= 'z.xml';
$xmlfile = new DOMDocument();
@
$xmlfile->load($file);
$iplist = $xmlfile->getElementsByTagName('test');
var_dump($iplist->item(0)->nodeValue);
?>

If you found this article helpful or useful, please help Compdigitec by spreading the word or by leaving a comment. Don’t forget to subscribe to Compdigitec Labs for more interesting articles!

If you found this article helpful or interesting, please help Compdigitec spread the word. Don’t forget to subscribe to Compdigitec Labs for more useful and interesting articles!

Topics: PHP | 9 Comments »

9 Responses to “DOMNodeList as an Array”

  1. alboNicca Says:
    April 1st, 2012 at 20:10

    Thank u. That’s what I needed

  2. anon Says:
    August 10th, 2012 at 17:13

    Thank you very much.

  3. สล็อตเว็บตรง ทุนน้อยโบนัสแตกโหด ถอนได้ไม่อั้น Says:
    January 19th, 2025 at 02:16

    … [Trackback]

    […] Find More on to that Topic: compdigitec.com/labs/2008/08/31/domnodelist-as-an-array/ […]

  4. วิธีเล่นบาคาร่าให้รวย Says:
    January 23rd, 2025 at 21:25

    … [Trackback]

    […] Info on that Topic: compdigitec.com/labs/2008/08/31/domnodelist-as-an-array/ […]

  5. fox888 Says:
    January 25th, 2025 at 10:44

    … [Trackback]

    […] Read More on to that Topic: compdigitec.com/labs/2008/08/31/domnodelist-as-an-array/ […]

  6. โปรแกรมจัดการงาน Says:
    February 6th, 2025 at 19:45

    … [Trackback]

    […] Find More on on that Topic: compdigitec.com/labs/2008/08/31/domnodelist-as-an-array/ […]

  7. เช่ารถตู้พร้อมคนขับ Says:
    February 14th, 2025 at 22:17

    … [Trackback]

    […] Find More to that Topic: compdigitec.com/labs/2008/08/31/domnodelist-as-an-array/ […]

  8. คาสิโนออนไลน์เว็บตรงต่างประเทศ Says:
    February 16th, 2025 at 18:20

    … [Trackback]

    […] Here you can find 72372 additional Information on that Topic: compdigitec.com/labs/2008/08/31/domnodelist-as-an-array/ […]

  9. ทัวร์ยุโรป Says:
    February 19th, 2025 at 23:09

    … [Trackback]

    […] Information to that Topic: compdigitec.com/labs/2008/08/31/domnodelist-as-an-array/ […]

Comments