xml到phpmyadmin会创建太多行

时间:2015-10-07 21:50:21

标签: php mysql xml phpmyadmin

新手在这里尝试提取" shoedept或ShoeDept,50美元,特价优惠30%,优质设计,纬度,经度"从file.xml到phpmyadmin DB。 myTable似乎很顽固,无法改变,但是在相同的顺序中具有相同的字段,除了命名不同;型号,价格,标题,描述,纬度,经度。

<source>
<id>shoedept</id>
<name>ShoeDept</name>
</source>
<location>
<address>174 Sioux</address>
<zip>48228</zip>
<citycode>usa:mi:detroit</citycode>
<name>Detroit</name>
<state>MI</state>
<country>USA</country>
<latitude>42.4089</latitude>
<longitude>-82.9432</longitude>
</location>
<images/>
<time>1444207824</time>
<paid>No</paid>
<score>1</score>
<user/>
<url>
http://................
</url>
<attributes>
<features>Leather</features>
<men>1</men>
<women>2</women>
<currency>USD</currency>
<fee>No</fee>
<has_pic>No</has_pic>
<price>50</price>
<price_display>$50</price_display>
</attributes>
</element>
<element>
<id>4030773537</id>
<title>
$50 / special
</title>
<body>
Top quality design
</body>

温我写这个陈述;

LOAD DATA INFILE "file.xml" INTO TABLE myTable(headline,description.....) 

我收到大量的行,列出了所有不需要的垃圾。我只需要整个块中的一行,并将字段列为列。当我尝试使用

ROWS IDENTIFIED BY '<field>';

将其压缩成一行,会抛出错误。然后我尝试创建一个临时表并强制数据进入myTable,下面没有希望;

LOAD DATA INFILE "file.xml";
UPDATE tmp SET DEFAULT = 'file.xml';
INSERT INTO myTable SELECT * FROM tmp;

非常感谢

1 个答案:

答案 0 :(得分:0)

INFILE必须是文本文件。也许你可以用这个工具转换它: http://www.convertcsv.com/xml-to-csv.htm或类似的东西。

然后将.csv文件导入数据库。

正如@Marc B所提到的,有一个LOAD XML命令(https://dev.mysql.com/doc/refman/5.5/en/load-xml.html)。