php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #15412 set_content() and new_child() methods not creating wellformed XML
Submitted: 2002-02-06 17:34 UTC Modified: 2002-02-06 18:45 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: ken at positive-edge dot com Assigned:
Status: Not a bug Package: DOM XML related
PHP Version: 4.1.1 OS: WindowsXP
Private report: No CVE-ID: None
 [2002-02-06 17:34 UTC] ken at positive-edge dot com
There is a *large* bug in the the set_content() method (as well as the new_child() method)

For instance, if i try to add a new node with content containing an entity like this, it will convert the entity to the original character.

$bugItemNode->new_child( 'title', '' );
$bugItemNode->set_content( 'HtmlTagContainer's add() method does not accept strings as an argument.' );

But when you use $doc->dumpmem(), the output will be the following:

...<title>HtmlTagContainer's add() method does not accept strings as an argument.</title>

Notice that it contains an apostrophe and it is NOT &apos;.  This is a huge bug since it does not output wellformed XML files.

Obviously, if you simply write the apostrophe character, it will do nothing to convert it to &apos; as well.  This is serious and will hinder MANY applications that need to parse the resultant XML content.  Developers, please fix this.

Ken Egervari

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-02-06 18:43 UTC] chregu@php.net
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
 [2002-02-06 18:45 UTC] chregu@php.net
Sorry. wanted to give a quick answer and not just bogusifying it. 

It's a libxml2 issue. It's not a wrong behaviour. 
See
http://mail.gnome.org/archives/xml/2001-April/msg00079.html

for a discussion about that (and it seems, that there is no real reason, why &apos; is converted,  but it stayed this way. complain at the libxml2 people, if you want this changed)



 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 14:01:32 2024 UTC