ID: 42139
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Open
+Status: Assigned
Bug Type: XML related
Operating System: MacOS/Darwin 10.4.10/8.10.1
PHP Version: 5CVS-2007-07-29 (CVS)
-Assigned To:
+Assigned To: rrichards
New Comment:
They are options - properties method was old name/method in libxml2
(see Table 338. XMLReader Parser Options - in XMLReader docs), though it
needs to be implemented for that method.
Assign to self
Previous Comments:
------------------------------------------------------------------------
[2007-07-29 12:53:05] [EMAIL PROTECTED]
Description:
------------
The XMLReader constants for parser options (LOADDTD, SUBST_ENTITIES,
etc.) don't work when passed as the third parameter to XMLReader::open()
or XMLReader::XML(). Their values are incorrect for the xmlreader API;
they're parser property names, not option bitmasks. The XML() method
also ignores the options parameter completely.
This is partially a documentation problem, but also involves broken
functionality in the xmlreader extension. Suggested fix is to either:
- remove the options parameters completely from both methods and their
documentation
- fix the XML() method to read the options and document both functions
as using the LIBXML_* constants (fix the docs to match the code), or
- modify both XML() and open() to interpret the options passed as
properties (fix the code to match the docs)
Reproduce code:
---------------
<?php
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE root [
<!ELEMENT root ANY>
<!ENTITY x "y">
]>
<root>&x;</root>
XML;
$reader = new XMLReader;
$reader->XML( $xml, NULL, XMLReader::SUBST_ENTITIES );
// or: $reader->XML( $xml, NULL, LIBXML_NOENT );
while ( $reader->read() )
echo "{$reader->nodeType}, {$reader->name}, {$reader->value}\n";
$reader->close();
?>
Expected result:
----------------
10, root,
1, root,
3, #text, y
15, root,
Actual result:
--------------
10, root,
1, root,
5, x,
15, root,
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42139&edit=1