繁体   English   中英

php,sql行到xml文件的转换。 需要帮助

[英]php, sql row to xml file conversion. Help needed

我正在将数据从数据库转换为每一行的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

谢谢

我在这里测试e做一些更改。 问题是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");

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM