jonniejoejonson Posted June 5, 2009 Share Posted June 5, 2009 I have data in a databsae that i want to convert into xml. When i test the outputted php file i get valid xml. However when i try to load this xml i get the following error Warning: simplexml_load_file() [function.simplexml-load-file]: parts/xml/userMedia.php:58: parser error : Start tag expected, '<' not found in C:\..........\viewMediaFolder.php on line 52 The code i am using to output the xml is: $xml_output = "<?xml version=\"1.0\"?>\n"; $xml_output .= "<mediaAll>\n"; for($i=0;$i<count($mediaId_array); $i++){ $xml_output .= "\t<media>\n"; $xml_output .= "\t\t<mediaId>".$mediaId_array[$i]."</mediaId>\n"; $xml_output .= "\t\t<mediaType>".$mediaType_array[$i]."</mediaType>\n"; $xml_output .= "\t\t<mediaTitle>".$mediaTitle_array[$i]."</mediaTitle>\n"; $xml_output .= "\t\t<mediaFilename>".$mediaFilename_array[$i]."</mediaFilename>\n"; $xml_output .= "\t\t<mediaThumbnail>".$mediaImageFilename_array[$i]."</mediaThumbnail>\n"; $xml_output .= "\t\t<folderId>".$folderId_array[$i]."</folderId>\n"; $xml_output .= "\t\t<dateCreated>".$dateCreated_array[$i]."</dateCreated>\n"; $xml_output .= "\t</media>\n"; } $xml_output .= "</mediaAll>"; print $xml_output; Quote Link to comment https://forums.phpfreaks.com/topic/161119-php-to-write-the-xml/ Share on other sites More sharing options...
jonniejoejonson Posted June 5, 2009 Author Share Posted June 5, 2009 Is it possible to load xml from a php file. $xml = simplexml_load_file('xml/test.php'); the test.php file echos valid xml with xml headers... however it doesn't seem to work for me... this tutorial says that this can be done http://www.kirupa.com/web/mysql_xml_php.htm Anyone know if this is defo possible or where im going wrong... because if i change the test.php file for an actual xml file it works fine. Quote Link to comment https://forums.phpfreaks.com/topic/161119-php-to-write-the-xml/#findComment-850303 Share on other sites More sharing options...
dreamwest Posted June 5, 2009 Share Posted June 5, 2009 Is this a playlist generator? //query here echo '<?xml version="1.0" encoding="UTF-8"?><playlist xmlns="http://xspf.org/ns/0/" version="1"><title>mixmedia</title> <tracklist>'; echo"<track> <title>".$row['title']."</title> <location>".$file."</location> <duration>".$row['video_length']."</duration> <image>/thumb/".$row['id'].".jpg</image> </track>"; echo '</tracklist></playlist>'; Quote Link to comment https://forums.phpfreaks.com/topic/161119-php-to-write-the-xml/#findComment-850308 Share on other sites More sharing options...
jonniejoejonson Posted June 5, 2009 Author Share Posted June 5, 2009 It isn't a playlist generator but it is the same idea... it is a php script that grabs data from database and outputs it as xml... however i can't even load a script that simply echos the xml like so... header("Content-type: text/xml"); print'<?xml version="1.0"?> <catalog> <book id="bk101"> <author>Gambardella, Matthew</author> <title>XML Developer\'s Guide</title> <genre>Computer</genre> <price>44.95</price> <publish_date>2000-10-01</publish_date> <description>An in-depth look at creating applications with XML.</description> </book> </catalog>'; when i try and load this page $xml = simplexml_load_file('xml/test.php'); i get an error... any ideas? Quote Link to comment https://forums.phpfreaks.com/topic/161119-php-to-write-the-xml/#findComment-850321 Share on other sites More sharing options...
jonniejoejonson Posted June 6, 2009 Author Share Posted June 6, 2009 Answer don't use $xml=simplexml_load_file('xml/test.php'); because it no load the php filetype... it only load xml filetype... instead in the php script that creates the xml.. simply give the generated xml a var name for example $xmlFromExernal script (dont echo/print it out) then include this php script in the php file that you are trying to use to display the xml data.. and use... $xml = simplexml_load_string($xmlFromExernal script); bingo-bango. Quote Link to comment https://forums.phpfreaks.com/topic/161119-php-to-write-the-xml/#findComment-850337 Share on other sites More sharing options...
jonniejoejonson Posted June 6, 2009 Author Share Posted June 6, 2009 Answer don't use $xml=simplexml_load_file('xml/test.php'); because it no load the php filetype... it only load xml filetype... instead in the php script that creates the xml.. simply give the generated xml a var name for example $xmlFromExernal script (dont echo/print it out) then include this php script in the php file that you are trying to use to display the xml data.. and use... $xml = simplexml_load_string($xmlFromExernal script); bingo-bango. Quote Link to comment https://forums.phpfreaks.com/topic/161119-php-to-write-the-xml/#findComment-850339 Share on other sites More sharing options...
trq Posted June 6, 2009 Share Posted June 6, 2009 The reason calling $xml=simplexml_load_file('xml/test.php') won't work is because the test.php script never gets parsed by php. In order for it to be parsed you would need to call it via a url. eg; simplexml_load_file('http://yourdomain.com/xml/test.php'); Makes perfect sense doesn't it? Quote Link to comment https://forums.phpfreaks.com/topic/161119-php-to-write-the-xml/#findComment-850364 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.