ID:               35271
 User updated by:  bugs dot php dot net at nanonanonano dot net
 Reported By:      bugs dot php dot net at nanonanonano dot net
 Status:           Open
-Bug Type:         Feature/Change Request
+Bug Type:         *XML functions
 Operating System: Linux
 PHP Version:      4CVS-2005-11-18 (CVS)
 New Comment:

This has been triaged to "Feature request" but it's a straight bug in
the implementation: the docs claim that xml_parse_into_struct parses
XML into a pair of arrays but the function doesn't do that.

(at the very least, a warning should be in the documentation for
xml_parse_into_struct that it will fubar your data if you have entities
in it, but I'd obviously prefer that the function just worked properly)


Previous Comments:
------------------------------------------------------------------------

[2005-11-18 07:17:00] bugs dot php dot net at nanonanonano dot net

Description:
------------
When called on an XML document that contains defined entities,
xml_parse_into_struct silently drops the entities from the parsed
output.

(If the entity is undefined, it returns an error)

Reproduce code:
---------------
<?php
  $data = implode ("", file('entityexample.xml'));
  $parser = xml_parser_create();
  xml_parser_set_option ($parser,XML_OPTION_CASE_FOLDING,0);
  xml_parser_set_option ($parser,XML_OPTION_SKIP_WHITE,1);
  xml_parse_into_struct ($parser,$data,$values,$tags);
  xml_parser_free ($parser);
  #echo "VALS\n"; print_r($values);
  #echo "TAGS\n"; print_r($tags); 
  echo $values[2]['value']."\n";
?>
---------- entityexample.xml --------------
<?xml version='1.0'?>
<!DOCTYPE test [
  <!ENTITY times   "FOO BAR">
]>
<test>
  <item>
    <name>One &times; two</name>
  </item>
</test>


Expected result:
----------------
The entity should either be not replaced:

        One &times; two

or it should be correctly replaced:

        One FOO BAR two


Actual result:
--------------
The entity is silently dropped from the XML stream:

        One  two



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


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

Reply via email to