From: timcbest at gmail dot com
Operating system: FreeBSD
PHP version: 5.2.0
PHP Bug Type: DOM XML related
Bug description: XML Parsing Error: xml declaration not at start of external entity

Description:
------------
When generating XML from DOMDoent I get this error:

Error:
XML Parsing Error: xml declaration not at start of external
entity
Location: [url]http://test.mysite.com/getcounty.php?state=MS[/url]
Line Number 1, Column 2: <?xml version="1.0" encoding="UTF-8"?
>
-^






Reproduce code:
---------------
function formulateResponse($info){

$dom = new DOMDoent('1.0', 'UTF-8');
$dom->formatOutput = true;
$root = $dom->createElement('response');
$root = $dom->appendChild($root);

foreach($info as $index => $county_array){
$county = $dom->createElement('county');
$county = $root->appendChild($county);

$name = $dom->createTextNode($county_array['county']);
$name = $county->appendChild($name);

}

header('Content-Type: text/xml');
echo $dom->saveXML();

}



Expected result:
----------------
I expect the browser to be able to p the XML below.
This is the XML generated by the above function. Whether I
call it from an Ajax call or directly in the browser
(Firefox 1.5.0.8 or Safari 2.0.4) the error is generated as
specified in the description box above.

<?xml version="1.0" encoding="UTF-8"?>
<response>
<county>Adams</county>
<county>Alcorn</county>
<county>Amite</county>
<county>Attala</county>
<county>Benton</county>
<county>Bolivar</county>
<county>Calhoun</county>
<county>Carroll</county>
<county>Chickasaw</county>
<county>Choctaw</county>
<county>Claiborne</county>
<county>Clarke</county>
<county>Clay</county>
<county>Coahoma</county>
<county>Copiah</county>
<county>Covington</county>
<county>De Soto</county>
<county>Forrest</county>
<county>Franklin</county>
<county>George</county>
<county>Greene</county>
<county>Grenada</county>
<county>Han</county>
<county>Harrison</county>
<county>Hinds</county>
<county>Holmes</county>
<county>Humphreys</county>
<county>Issaquena</county>
<county>Itawamba</county>
<county>Jackson</county>
<county>Jasper</county>
<county>Jefferson</county>
<county>Jefferson Davis</county>
<county>Jones</county>
<county>Kemper</county>
<county>Lafayette</county>
<county>Lamar</county>
<county>Lauderdale</county>
<county>Lawrence</county>
<county>Leake</county>
<county>Lee</county>
<county>Leflore</county>
<county>Lincoln</county>
<county>Lowndes</county>
<county>Madison</county>
<county>Marion</county>
<county>Marshall</county>
<county>Monroe</county>
<county>Montgomery</county>
<county>Neshoba</county>
<county>Newton</county>
<county>Noxubee</county>
<county>Oktibbeha</county>
<county>Panola</county>
<county>Pearl River</county>
<county>Perry</county>
<county>Pike</county>
<county>Pontotoc</county>
<county>Prentiss</county>
<county>Quitman</county>
<county>Rankin</county>
<county>Scott</county>
<county>Sharkey</county>
<county>Simpson</county>
<county>Smith</county>
<county>Stone</county>
<county>Sunflower</county>
<county>Tallahatchie</county>
<county>Tate</county>
<county>Tippah</county>
<county>Tishomingo</county>
<county>Tunica</county>
<county>Union</county>
<county>Walthall</county>
<county>Warren</county>
<county>Washington</county>
<county>Wayne</county>
<county>Webster</county>
<county>Wilkinson</county>
<county>Winston</county>
<county>Yalobusha</county>
<county>Yazoo</county>
<county>Statewide</county>
</response>

Actual result:
--------------
Error:
XML Parsing Error: xml declaration not at start of external
entity
Location: [url]http://test.mysite.com/getcounty.php?state=MS[/url]
Line Number 1, Column 2: <?xml version="1.0" encoding="UTF-8"?
>
-^

--
Edit bug report at [url]http://bugs.php.net/?id=39909&edit=1[/url]
--
Try a CVS snapshot (PHP 4.4): [url]http://bugs.php.net/fix.php?id=39909&r=trysnapshot44[/url]
Try a CVS snapshot (PHP 5.2): [url]http://bugs.php.net/fix.php?id=39909&r=trysnapshot52[/url]
Try a CVS snapshot (PHP 6.0): [url]http://bugs.php.net/fix.php?id=39909&r=trysnapshot60[/url]
Fixed in CVS: [url]http://bugs.php.net/fix.php?id=39909&r=fixedcvs[/url]
Fixed in release: [url]http://bugs.php.net/fix.php?id=39909&r=alreadyfixed[/url]
Need backtrace: [url]http://bugs.php.net/fix.php?id=39909&r=needtrace[/url]
Need Reproduce Script: [url]http://bugs.php.net/fix.php?id=39909&r=needscript[/url]
Try newer version: [url]http://bugs.php.net/fix.php?id=39909&r=oldversion[/url]
Not developer issue: [url]http://bugs.php.net/fix.php?id=39909&r=support[/url]
Expected behavior: [url]http://bugs.php.net/fix.php?id=39909&r=notwrong[/url]
Not enough info: [url]http://bugs.php.net/fix.php?id=39909&r=notenoughinfo[/url]
Submitted twice: [url]http://bugs.php.net/fix.php?id=39909&r=submittedtwice[/url]
register_globals: [url]http://bugs.php.net/fix.php?id=39909&r=globals[/url]
PHP 3 support discontinued: [url]http://bugs.php.net/fix.php?id=39909&r=php3[/url]
Daylight Savings: [url]http://bugs.php.net/fix.php?id=39909&r=dst[/url]
IIS Stability: [url]http://bugs.php.net/fix.php?id=39909&r=isapi[/url]
Install GNU Sed: [url]http://bugs.php.net/fix.php?id=39909&r=gnused[/url]
Floating point limitations: [url]http://bugs.php.net/fix.php?id=39909&r=float[/url]
No Zend Extensions: [url]http://bugs.php.net/fix.php?id=39909&r=nozend[/url]
MySQL Configuration Error: [url]http://bugs.php.net/fix.php?id=39909&r=mysqlcfg[/url]