Friday, 19 September 2014

error on line 2 at column 1: Document is empty



It's my firsttime posting so bare with me :p. I have made a php code that creates an xml document that stores the name and the source of an image that are previously posted. It used to work fine but then i didn't use it for a while and it gave me an error when i tried it again. Here is the code i run and an example of how the created xml used to look when it was working. Would really appreciate if someone could tell me why it's not working anymore. thnx



<?php
//include 'uploadmessage.php';
// PHP file that renders perfect Dynamic XML for MySQL Database result sets
header("Content-Type: text/xml"); //set the content type to xml
// Initialize the xmlOutput variable
$xmlBody = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xmlBody .= "<XML>";
$xmlBody .= '<' . $_POST['pakketnaam'] . '>';
$woorden = array();
$pakketnaam = $_POST['pakketnaam'];


if(isset($_POST['upload'])){
if (!file_exists('images/' . $pakketnaam)){
mkdir('images/' . $pakketnaam);
}
$images = array();

for ($i = 1; $i <= 10; $i++){
$ext = pathinfo($_FILES["foto$i"]['name'], PATHINFO_EXTENSION);
$woord = $_POST['woord' . $i];
$file_name = $HTTP_POST_FILES["foto$i"]['name'];
$path= "images/" . $pakketnaam . "/" . $woord . '.' . $ext;
copy($HTTP_POST_FILES["foto$i"]['tmp_name'], $path);
array_push($woorden, $woord);
array_push($images, $path);
//echo $loadimages[$i];

}
}
//get array values convert to xml


for ($j = 0; $j <= 9; $j++){
$woordxml = $woorden[$j];
$pathxml = $images[$j];

// Start filling the $xmlBody variable with looping content here inside the while loop
$xmlBody .= '
<Woord>
<DataImagename>' . $woordxml . '</DataImagename>
<DataImagesource>' . $pathxml . '</DataImagesource>
</Woord>';
}

$xmlBody .= '</' . $_POST['pakketnaam'] . '>';
$xmlBody .= "</XML>";
echo $xmlBody; // test xml output

file_put_contents($_POST['pakketnaam'] . '.xml', $xmlBody);

//voeg pakketnaam toe aan pakketten.xml

$xml_str = file_get_contents('pakketten.xml');
$xml = new SimpleXMLElement($xml_str);
$new_pakket = $xml->xpath('/xml/pakketten');
$new_pakket = $new_pakket [0];
$event = $new_pakket->addChild('pakketnaam', $pakketnaam);
file_put_contents('pakketten.xml', $xml->asXML());
//sleep(4);
header( 'Location: menupage.html');
?>


Here is an output of the xml file when it used to work.



This XML file does not appear to have any style information associated with it. The document tree is shown below.
<XML>
<Filmsterren>
<Woord>
<DataImagename>Ian McKellen</DataImagename>
<DataImagesource>images/Filmsterren/Ian McKellen.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Bradley Cooper</DataImagename>
<DataImagesource>images/Filmsterren/Bradley Cooper.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Daniel Day-Lewis</DataImagename>
<DataImagesource>images/Filmsterren/Daniel Day-Lewis.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Joseph Gordon-Levitt</DataImagename>
<DataImagesource>images/Filmsterren/Joseph Gordon-Levitt.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Morgan Freeman</DataImagename>
<DataImagesource>images/Filmsterren/Morgan Freeman.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Robert Downing Jr.</DataImagename>
<DataImagesource>images/Filmsterren/Robert Downing Jr..jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Ryan Gosling</DataImagename>
<DataImagesource>images/Filmsterren/Ryan Gosling.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Steve Carell</DataImagename>
<DataImagesource>images/Filmsterren/Steve Carell.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>Will Ferrell</DataImagename>
<DataImagesource>images/Filmsterren/Will Ferrell.jpg</DataImagesource>
</Woord>
<Woord>
<DataImagename>James Franco</DataImagename>
<DataImagesource>images/Filmsterren/James Franco.jpg</DataImagesource>
</Woord>
</Filmsterren>
</XML>

No comments:

Post a Comment