[PEAR-BUG] Bug #21052 [Com]: Incompatible Attributes Options

[email protected] ("[email protected]") Tue, 12 Apr 2016 06:09:41 -0400 (EDT)
Newsgroups php.pear.bugs
Message-ID <[email protected]>
Edit report at https://pear.php.net/bugs/bug.php?id=21052&edit=1

 ID:               21052
 Comment by:       [email protected]
 Reported By:      dickson dot michael at gmail dot com
 Summary:          Incompatible Attributes Options
 Status:           Open
 Type:             Bug
 Package:          XML_Serializer
 Package Version:  0.20.2
 PHP Version:      Irrelevant
 Roadmap Versions: 
 New Comment:

I found the above patch solves the problem by creating a $dataAttribs
which does not contain the internal attributes _originalKey, _type, or
_class.


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

[2016-04-12 06:05:59] dicksonm

Added #patch
bug:21052;patch:attribute-segregation.patch;revision:1460455559;.

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

[2016-04-12 05:59:42] dicksonm

Description:
------------
In Unserialize.php, when 'parseAttributes' is set as well as 'typeHints'
the 
output data is corrupted by package's internal attributes.

Test script:
---------------
<?php
$string = <<<EOD
<array _type="array" Hello="world" Glad="I am">
<XML_Serializer_Tag _originalKey="To see"
_type="string">You</XML_Serializer_Tag>
<XML_Serializer_Tag _originalKey="I think" _type="string">We can be
friends</XML_Serializer_Tag>
</array>
EOD;

require_once 'XML/Unserializer.php';
$engine = new XML_Unserializer();
$engine->setOption('parseAttributes', true);
$engine->setOption('typeHints', TRUE);
$engine->unserialize($string);
var_dump($engine->getUnserializedData());
?>

Expected result:
----------------
array(4) {
  ["Hello"]=>
  string(5) "world"
  ["Glad"]=>
  string(4) "I am"
  ["To see"]=>
  string(3) "You"
  ["I think"]=>
  string(17) "We can be friends"
}


Actual result:
--------------
array(5) {
  ["_type"]=>
  string(5) "array"
  ["Hello"]=>
  string(5) "world"
  ["Glad"]=>
  string(4) "I am"
  [0]=>
  array(3) {
    ["_originalKey"]=>
    string(6) "To see"
    ["_type"]=>
    string(6) "string"
    ["_content"]=>
    string(3) "You"
  }
  [1]=>
  array(3) {
    ["_originalKey"]=>
    string(7) "I think"
    ["_type"]=>
    string(6) "string"
    ["_content"]=>
    string(17) "We can be friends"
  }
}

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


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