У меня есть XML, как в следующее:извлечение данных из XML и хранение в тузде таблицу
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<id>1000416</id>
<price>9990</price>
<stock>1</stock>
<name><![CDATA[Benbo Mk3 Trekker Kit Trépied avec Tête B&S et sac]]></name>
<attributes>
<attribute datatype="text">
<name><![CDATA[name]]></name>
<value><![CDATA[Benbo Mk3 Trekker Kit Trépied avec Tête B&S et sac]]></value>
</attribute>
<attribute datatype="text">
<name><![CDATA[sku]]></name>
<value><![CDATA[BEN107C]]></value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[price]]></name>
<value>9900</value>
</attribute>
<attribute datatype="text">
<name><![CDATA[manufacturer]]></name>
<value><![CDATA[Benbo]]></value>
</attribute>
<attribute datatype="text">
<name><![CDATA[url_key]]></name>
<value><![CDATA[benbo-mk3-trekker-kit-trepied-avec-tete-b-s-et-sac]]></value>
</attribute>
<attribute datatype="text">
<name><![CDATA[photo_video]]></name>
<value><![CDATA[Photo ]]></value>
</attribute>
<attribute datatype="text">
<name><![CDATA[includes_tripodhead]]></name>
<value><![CDATA[Oui]]></value>
</attribute>
<attribute datatype="text">
<name><![CDATA[material]]></name>
<value><![CDATA[Aluminium]]></value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[stock_lc_kroezenhoek]]></name>
<value>1</value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[stock_total]]></name>
<value>1</value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[eancode]]></name>
<value>123456789</value>
</attribute>
</attributes>
<categories>
<categoryid>100042</categoryid>
<categoryid>10004332</categoryid>
</categories>
</item>
<item>
<id>1000418</id>
<price>4896</price>
<stock>0</stock>
<name><![CDATA[Benbo Trekker Monopod]]></name>
<attributes>
<attribute datatype="text">
<name><![CDATA[name]]></name>
<value><![CDATA[Benbo Trekker Monopod]]></value>
</attribute>
<attribute datatype="text">
<name><![CDATA[sku]]></name>
<value><![CDATA[BEN109]]></value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[price]]></name>
<value>4896</value>
</attribute>
<attribute datatype="text">
<name><![CDATA[manufacturer]]></name>
<value><![CDATA[Benbo]]></value>
</attribute>
<attribute datatype="text">
<name><![CDATA[url_key]]></name>
<value><![CDATA[benbo-trekker-monopod]]></value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[stock_lc_kroezenhoek]]></name>
<value>1</value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[stock_total]]></name>
<value>1</value>
</attribute>
<attribute datatype="numeric">
<name><![CDATA[eancode]]></name>
<value>3987654321</value>
</attribute>
<attribute datatype="text">
<name><![CDATA[manufacturer_code]]></name>
<value><![CDATA[BEN109]]></value>
</attribute>
</attributes>
<categories>
<categoryid>100042</categoryid>
<categoryid>10004329</categoryid>
</categories>
</item>
</items>
Теперь из этого XML Я хочу, чтобы сохранить значение каждого атрибута в таблице MySQL ... каждое значение будет быть колонки ... для получения этого я использовал следующий код:
$values = array();
$reader = new XMLReader();
$reader->open('test.xml');
$id = 'attribute';
while ($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT) {
$exp = $reader->expand();
if ($exp->nodeName == "item") {
// if (count($values)) print implode(" : ", $values);
//$values = array();
}
if ($exp->nodeName == $id) {
foreach ($exp->childNodes as $node) {
if ($node->nodeName == "value") {
$values[] = $node->textContent;
}
// $values[] = null;
}
}
}
}
if (count($values)) print implode(" : ", $values);
Это позволяет мне для отображения значений из массива, разделенный: но я хочу, чтобы хранить каждое значение тегов из «атрибутов «узел в таблице MySql ... может кто-нибудь, пожалуйста, помогите мне, я действительно борюсь с этим, так как я очень новичок в XML программирование ...
Заранее благодарим!
пожалуйста расширить свой вопрос, задавая ясный и конкретный вопрос, и объясните, как вы застряли. – michi