【问题标题】:SimpleXML parse multiple tags with same nameSimpleXML 解析多个同名标签
【发布时间】:2014-08-06 13:55:08
【问题描述】:

拜托,我需要用汽车信息解析 XML 文件。我在汽车、照片中做了所有事情,但我需要在额外的表中有 id、汽车表的外键到 id,并且所有汽车都有随机的设备 ID。

我需要把它放到“设备”表中:

  <equipment>
  <equipment_id>eq_co_driver_airbag</equipment_id>
  <equipment_id>eq_driver_airbag</equipment_id>
  <equipment_id>eq_abs</equipment_id>
  <equipment_id>eq_aut_aircon</equipment_id>
  <equipment_id>eq_dalk_centr</equipment_id>
  <equipment_id>eq_el_contr_win</equipment_id>
  <equipment_id>eq_el_contr_mirrors</equipment_id>
  <equipment_id>eq_lite_disky</equipment_id>
  <equipment_id>eq_immobilizer</equipment_id>
  <equipment_id>eq_mlhovky</equipment_id>
  <equipment_id>eq_adjustable_drive_wheel</equipment_id>
  <equipment_id>eq_original_autoradio</equipment_id>
  <equipment_id>eq_on_board_comp</equipment_id>
  <equipment_id>eq_steering_booster</equipment_id>
  <equipment_id>eq_leather_trim</equipment_id>
  <equipment_id>eq_ASR</equipment_id>
  <equipment_id>eq_stresni_sibr_el</equipment_id>
  <equipment_id>eq_ton_skla</equipment_id>
  <equipment_id>eq_venkovni_teplomer</equipment_id>
  <equipment_id>eq_adjustable_seat</equipment_id>
  </equipment>

我无法创建正确的导入脚本。

这是我的 XML 文件中的一辆车: http://pastebin.com/Yyr1GXyb

这里是通过 print_r 列出的一辆车的列表: http://pastebin.com/csQpQSDs

我试过这个:

echo "import equipment .. ";
foreach ($xml->cars->car->equipment as $data) {
        mysql_query("INSERT INTO equipment (cars_id, equipment_id)
        VALUES
        ($id_car, \"$data->equipment_id\")")
        or die(mysql_error());
    $id_car++;
}
echo "OK\n";

还有这个

echo "import equipment .. ";
foreach ($xml->cars->car as $entry) {
    foreach ($entry->equipment as $data) {
        mysql_query("INSERT INTO equipment (cars_id, equipment_id)
        VALUES
        ($id_car, \"$data->equipment_id\")")
        or die(mysql_error());
    }
    $id_car++;
}
echo "OK\n";

但没有成功

我想不通。请帮我。非常感谢!

【问题讨论】:

  • 使用 DomDocument 更容易
  • SimpleXML 不可能吗?想用SimpleXML,我觉得是可以的。我不知道如何使用 DomDocument 进行此操作

标签: php mysql xml parsing simplexml


【解决方案1】:

解决了!

echo "import equipment .. ";
foreach ($xml->cars->car as $entry) {
    foreach ($entry->children()->equipment->equipment_id as $data) {
    mysql_query("INSERT INTO equipment (cars_id, equipment_id)
        VALUES
        ($id_car, \"$data\")")
        or die(mysql_error());
    }
    $id_car++;
}
echo "OK\n";

【讨论】:

猜你喜欢
  • 2013-09-30
  • 1970-01-01
  • 2012-12-18
  • 2015-09-29
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
  • 1970-01-01
相关资源
最近更新 更多