2016-04-27 1 views
0

Я конвертирую данные из своей базы данных в xml-файлы для каждой строки. Я продолжаю получать ошибки, хотя, я бы appriciate, если кто-то, где можно проверить этот код и помочь мне, пожалуйста. Спасибо.php, sql строка для преобразования XML-файлов. Необходима помощь

PHP:

<?php 
include_once'dbconnect.php'; 
$sql="select * from Applicants WHERE Outcome='A'"; 
$result =mysql_query($sql); 

while($row = mysql_fetch_assoc($result)){ 

print_r($row); 
$count=count($row); 
foreach ($row as $row) 
{ 

     $xml = "<CTfile>". PHP_EOL; 
     $xml .="<DocumentName>Common Transfer File</DocumentName>". PHP_EOL; 
     $xml .="<CTFversion>11.0</CTFversion>". PHP_EOL; 
     $xml .="<DateTime>2011-09-27T00:00:00</DateTime>". PHP_EOL; 
     $xml .="<CTFpupilData>". PHP_EOL; 
     $xml .="<Pupil>". PHP_EOL; 
     $xml .= '<fname>'.'$row["Firstname"]'.'</fname>'. PHP_EOL; 
     $xml .= '<lname>'.'$row["Surname"]'.'</lname>'. PHP_EOL; 
     //$xml .= "</Phones>". PHP_EOL; 
     //$xml .= "<Email>".$row['ApplicantEmail']."</Email>". PHP_EOL; 
     //$xml .= "</Pupil>". PHP_EOL; 
     //$xml .= "</CTFpupilData>". PHP_EOL; 
     //$xml .= "</CTfile>". PHP_EOL; 
     $sxe = new SimpleXMLElement($xml); 
     $sxe->asXML("test.xml"); 


} 

} 
?> 

Ошибка:

Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Premature end of data in tag Pupil line 6 in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct(): in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct():^in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Premature end of data in tag CTFpupilData line 5 in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct(): in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct():^in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct(): Entity: line 9: parser error : Premature end of data in tag CTfile line 1 in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct(): in C:\xampp\htdocs\A\Convert.php on line 26 

Warning: SimpleXMLElement::__construct():^in C:\xampp\htdocs\A\Convert.php on line 26 

Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in C:\xampp\htdocs\A\Convert.php:26 Stack trace: #0 C:\xampp\htdocs\A\Convert.php(26): SimpleXMLElement->__construct('<CTfile>\r\n<Docu...') #1 {main} thrown in C:\xampp\htdocs\A\Convert.php on line 26 

Спасибо

ответ

0

Я здесь испытывались е внести некоторые изменения. Проблема заключалась в том, что foreach и некоторые теги не закрыты.

$i = 0; 
while($row = mysql_fetch_assoc($result)){ 

    $count=count($row); 
    $i++; 

    $xml = "<CTfile>". PHP_EOL; 
    $xml .="<DocumentName>Common Transfer File</DocumentName>". PHP_EOL; 
    $xml .="<CTFversion>11.0</CTFversion>". PHP_EOL; 
    $xml .="<DateTime>2011-09-27T00:00:00</DateTime>". PHP_EOL; 
    $xml .="<CTFpupilData>". PHP_EOL; 
    $xml .="<Pupil>". PHP_EOL; 
    $xml .= '<fname>'.$row["Firstname"].'</fname>'. PHP_EOL; 
    $xml .= '<lname>'.$row["Surname"].'</lname>'. PHP_EOL; 
    //$xml .= "</Phones>". PHP_EOL; 
    //$xml .= "<Email>".$row['ApplicantEmail']."</Email>". PHP_EOL; 
    $xml .= "</Pupil>". PHP_EOL; 
    $xml .= "</CTFpupilData>". PHP_EOL; 
    $xml .= "</CTfile>". PHP_EOL; 
    $sxe = new SimpleXMLElement($xml); 
    //generate file for each row 
    $sxe->asXML("test_".$i.".xml"); 

}

+1

Спасибо человеку, я уже исправил проблему, но опять же, спасибо большое. – srhgrsdhfdh