我正在处理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