#41931 [Bgs->Opn]: domdocument->savexml does not have formatoutput effect

From: Date: Mon, 09 Jul 2007 14:34:15 +0000
Subject: #41931 [Bgs->Opn]: domdocument->savexml does not have formatoutput effect
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-114799@lists.php.net to get a copy of this message
ID: 41931 User updated by: c00lways at gmail dot com Reported By: c00lways at gmail dot com -Status: Bogus +Status: Open Bug Type: DOM XML related Operating System: windows xp prof PHP Version: 5.2.3 New Comment: is this still bogus? it's weird, even without parameter in it, i still get non-formated output $dom = new DomDocument(); $dom->preserveWhiteSpace = true; $dom->formatOutput = false; $xdom = $dom->createElement( "yyy" ); $xchild = $dom->createElement( "OOO" ); $xchild2 = $dom->createElement( "subchild2" ); $xchild3 = $dom->createElement( "subchild3", "sub3" ); $xchild4 = $dom->createElement( "subchild4", "sub4" ); $xchild5 = $dom->createElement( "subchild5" ); $xchild2->setAttribute( "width", 200 ); $xchild2->appendChild( $xchild3 ); $xchild2->appendChild( $xchild4 ); $xchild2->appendChild( $xchild5 ); $xchild->appendChild( $xchild2 ); $xdom->appendChild( $xchild ); $dom->appendChild( $xdom ); echo $dom->saveXML( ); Previous Comments: ------------------------------------------------------------------------ [2007-07-09 14:11:04] rrichards@php.net Thank you for taking the time to write to us, but 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 and now you are using mixed content (yyy contains both textual and element nodes as children) so don't expect any formatting within there ... still bogus ------------------------------------------------------------------------ [2007-07-09 13:25:16] c00lways at gmail dot com No, still not working ------------------------------------------------------------------------ [2007-07-09 13:24:23] c00lways at gmail dot com No, still not working: example code: $dom = new DomDocument(); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $xdom = $dom->createElement( "yyy", "yyyy value" ); $xdom->preserveWhiteSpace = false; $xdom->formatOutput = true; $xchild = $dom->createElement( "OOO", "ooo value" ); $xdom->appendChild( $xchild ); $dom->appendChild( $xdom ); echo $dom->saveXML( $xdom ); ------------------------------------------------------------------------ [2007-07-09 11:52:31] rrichards@php.net You are probably looking at the results through a browser (or using a different script that is buggy) as the script (once you change the return to echo) outputs the correct results as expected. ------------------------------------------------------------------------ [2007-07-09 03:07:59] c00lways at gmail dot com Description: ------------ when: domdocument->preserveWhiteSpace = false; domdocument->formatoutput( true ); ... domdocument->savexml( domelement ); does not have formatoutput effect on savexml( domelement ) the output string is only 1 line... Reproduce code: --------------- $dom = new DomDocument("1.0", "iso-8859-1"); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $domme = $dom->createElement( "xx" ); $domme->appendChild(new DOMElement("subxx")); //try to force, but still same output $domme->preserveWhiteSpace = false; $domme->formatOutput = true; $dom->appendChild( $domme ); return $dom->saveXML( $domme ); Expected result: ---------------- <xx> <subxx /> </xx> Actual result: -------------- <xx><subxx /></xx> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41931&edit=1

« previous php.bugs (#114799) next »