我正在寻找一种方法来解析并使用php将以下XML字符串数据插入到MySQL表中..请帮助
<?xml version="1.0" encoding="UTF-8"?><brandModelListResponse>
<brand ID="Nokia" Description="Nokia">
<model ID="N93i" OS="Symbian" OSVersion="SymS60V3" image="nokia-n93i.gif">N93i</model>
<model ID="N95" OS="Symbian" OSVersion="SymS60V3" image="nokia-n95.gif">N95</model>
<model ID="Nokia300" OS="Symbian" OSVersion="SymS60V3" image="">Nokia300</model>
</brand>
<brand ID="Motorola" Description="Motorola">
<model ID="E1070" OS="J2ME" OSVersion="Motorola J2ME A.5" image="'E1070.jpg">E1070</model>
<model ID="E398" OS="J2ME" OSVersion="Motorola J2ME A.1" image="">E398</model>
</brand>
我有两个表,一个用于品牌和其他模型..需要将上面xml中可用的所有数据插入到这些表中..
提前致谢
安萨
答案 0 :(得分:3)
为了从XML收集数据并将其保存到数据库中,需要执行两个步骤。首先,您需要读取XML并将其存储到某些PHP数据结构中。其次,您需要将这些数据结构存储到数据库中。
假设您正在使用一个相当新鲜的PHP(&gt; = 5),您只需:
首先使用XML解析器读取数据。一旦完成,继续使用MySQL库。为了将数据存储到MySQL数据库,需要一些基本的SQL知识。例如咨询W3School的MySQL tutorial。
当然,您需要自己进行最终编码。但就像一个简单的结构提案一样,你的脚本可能看起来像这样:
$xml_data = file_get_contents('file.xml');
$xml = new SimpleXMLElement($xml_data);
foreach ($xml->item as $item)
{
$sql = 'INSERT INTO table (...) VALUES ('.$item['name'].');';
mysql_query(...); //
}
答案 1 :(得分:1)
感谢所有回复..我使用php DOM
做到了$xmlDoc = DOMDocument::loadXML( $xmlString );
//Get all brands
$brand = $xmlDoc->getElementsByTagName('brand');
for($i=0; $i <= $brand->length-1; $i++)
{
//get each brands data and insert to MySQL
$brandid = insertBrands($brand->item($i)->getAttribute('ID'), $brand->item($i)->getAttribute('Description') );
//get models for this brand
$model = $brand->item($i)->getElementsByTagName('model');
for($j=0; $j <= $model->length-1; $j++)
{
//get models data and insert to MySQL
insertModles($brandid, $model->item($j)->getAttribute('ID'), $model->item($j)->getAttribute('OS')
, $model->item($j)->getAttribute('OSVersion'), $model->item($j)->getAttribute('image') );
}
}