ID: 45253
User updated by: erudd at netfor dot com
Reported By: erudd at netfor dot com
Status: Open
Bug Type: SimpleXML related
Operating System: Linux
PHP Version: 5.2.6
New Comment:
The XMLWriter extension escapes my input for me as expected instead of
requiring me to escape the input first.
Previous Comments:
------------------------------------------------------------------------
[2008-06-12 21:31:52] erudd at netfor dot com
Description:
------------
Referencing bug #44458
Where in the documentation does it state that the strings must be
escaped when setting attributes or assigning values to children. I can
find it nowhere in the documentation, nor any examples where you show
that you "must escape text content" before entering it into the
attribute or text content of an element.
Also this behavior is inconsistent behavior as when you fetch the data
it is NOT escaped. So why should I need to escape the data when putting
it in?
This makes simpleXML not so simple as I have to perform extra
"unexpected" work while storing data into the xml document. Which I do
not have to do with the DOM extension.
Consistency should be high priority in this.. I should expect to
retrieve the same value out that I put in. the SimpleXML class should
handle encoding and decoding data for me so "I" don't have to think
about it.
Reproduce code:
---------------
$sxml=new SimpleXMLElement('<test></test>');
$sxml->addChild('child1','One & Two');
echo "Test 1:".(string)$sxml->child1."\n";
$sxml->addChild('child2','One & Two');
echo "Test 2:".(string)$sxml->child2."\n";
$sxml->addChild('child3');
$sxml->child3 = 'One & Two';
echo "Test 3:".(string)$sxml->child3."\n";
Expected result:
----------------
Test 1:One & Two
Test 2:One & Two
Test 3:One & Two
Actual result:
--------------
Test 1:One
Test 2:One & Two
Test 3:One & Two
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45253&edit=1