Edit report at https://bugs.php.net/bug.php?id=64104&edit=1

 ID:                 64104
 Updated by:         johan...@php.net
 Reported by:        me at gowthams dot in
 Summary:            Accessing childNodes of DOM element fails
-Status:             Open
+Status:             Not a bug
 Type:               Bug
 Package:            DOM XML related
 Operating System:   All
 PHP Version:        5.4.11
 Block user comment: N
 Private report:     N

 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

When enabling error reporting your script prints

Question 1<br />
Fatal error: Call to a member function item() on a non-object in - on line 22


When looking a bit close, i.e. doing

foreach ($lis as $li) {
  var_dump($li->nodeName);
}

You get output like

string(2) "li"
string(5) "#text"
string(2) "li"
string(5) "#text"

which shows you there are text nodes after the <li> tags,


Previous Comments:
------------------------------------------------------------------------
[2013-01-30 10:15:42] me at gowthams dot in

Description:
------------
I found this error while trying to parse an ordered list. When I access the 
firstChild or the lastChild of a DOM object that is in turn derived from 
another DOM object , the value is printed perfectly. 

However, when I try to access childDomObject->childNodes->item(0), the code 
fails.

Test script:
---------------
<?php

$html_data = 
'<html><body>
<ol>
    <li><strong>Question 1</strong> Answer1</li>
    <li><strong>Question 2</strong> Answer2</li>
</ol>
</body></html>';

$doc = new DOMDocument();
$doc->loadHTML($html_data);
$xpath = new DOMXPath($doc);

$ols = $xpath->query('//ol');
$ol = $ols->item(0);
$lis = $ol->childNodes;

foreach ($lis as $li) {
//echo $li->firstChild->nodeValue."<br />";
//echo $li->lastChild->nodeValue."<br />";
echo $li->childNodes->item(0)->nodeValue."<br />";
}

Expected result:
----------------
Question 1 Answer1<br />
Question 2 Answer2<br />

Actual result:
--------------
Question 1<br />



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64104&edit=1

Reply via email to