我正在處理XML文件,我需要通過PHP讀取數據,然後將數據保存到數據庫中。到目前爲止,我成功了。問題是,它是專門爲下面的XML製作的。我需要的是一個通用的代碼,它可以對任何類型的XML代碼執行相同的操作。從XML捕獲數據並保存在數據庫中
這是我的XML和PHP代碼
<?xml version="1.0" encoding="ISO-8859-1"?>
<list>
<person>
<person_id>1</person_id>
<fname>Mikael</fname>
<lname>Ronstrom</lname>
</person>
<person>
<person_id>2</person_id>
<fname>Lars</fname>
<lname>Thalmann</lname>
</person>
<person>
<person_id>3</person_id>
<fname>Mikael</fname>
<lname>Ronstrom</lname>
</person>
<person>
<person_id>4</person_id>
<fname>Lars</fname>
<lname>Thalmann</lname>
</person>
<person>
<person_id>5</person_id>
<fname>Mikael</fname>
<lname>Ronstrom</lname>
</person>
<person>
<person_id>6</person_id>
<fname>Lars</fname>
<lname>Thalmann</lname>
</person>
</list>
這裏是我的PHP代碼
$con = mysql_connect("localhost","root","vertrigo");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$xml = simplexml_load_file("xml.xml");
$aa = "";
foreach($xml->children() as $child)
{
foreach($child->children() as $childs)
{
$aa .= "'".$childs ."',";
}
$aa = substr_replace($aa, "", -1);
$sql = "INSERT into tbl_xmldata (person_id,first_name,last_name) values ($aa)";
$aa = "";
$rr = mysql_query($sql);
}
if ($rr){ echo "data successfully captured from XML and inserted in db";}else{ echo "sorry no data insertion";}
有沒有人可以幫助我? – user1210460
如果不進行某些高級編程,你所要求的聲音幾乎是不可能的。一個數據庫有一個預定義的結構 - 表,列,字段類型等,所以導入「任何」類型的XML意味着你將不得不建立一些高級函數,以便動態地建立數據庫結構,這樣您的PHP腳本可以正確地將數據插入到該數據庫中的正確位置。 – GDP