|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-04-04 03:50 UTC] miroslav dot spanel at cad-programs dot com
Description of bug:
Placing amperstand '&' in 'content' parameter of 'new_child' method produce trim of content at '&' position.
How to reproduce bug:
<?
$doc = new_xmldoc("1.0");
$root = $doc->add_root('root');
$chld = $root->new_child('element','element&value');
$chld->set_attribute('attr','attribute&value');
echo $doc->dumpmem();
?>
Output will be:
<?xml version="1.0"?>
<root>
<element attr="attribute&value">element</element>
</root>
Element has only 'element' value instead of 'element&value'
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 16:00:01 2025 UTC |
For now I'am using ereg_replace('[&][^amp;]','&',$value) to correct problem.This bug has been fixed in CVS. The latest cvs version provides better DOM compliance and has a function DomNode->create_text_node() which even accepts a '&'. The following works just fine: <?php $doc = domxml_new_doc("1.0"); $root = $doc->create_element("HTML"); $root = $doc->append_child($root); $head = $doc->create_element("HEAD"); $head = $root->append_child($head); $title = $doc->create_element("TITLE"); $title = $head->append_child($title); $text = $doc->create_text_node("This is & the title"); $text = $title->append_child($text); $body = $doc->create_element("BODY"); $body = $root->append_child($body); $bodytext1 = $doc->create_text_node("The text of the body"); $bodytext2 = $doc->create_text_node("Some more text of the body"); $bodytext1 = $body->append_child($bodytext1); $bodytext2 = $body->append_child($bodytext2); echo "<PRE>"; echo htmlentities($doc->dump_mem(true)); echo "</PRE>";