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
谢谢
我在这里测试并做了一些修改。问题是 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");
}
我正在将数据库中的数据转换为每一行的 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
谢谢
我在这里测试并做了一些修改。问题是 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");
}