首页 > 解决方案 > 从 php->mysql 中的 xml 深度节点

问题描述

我有一个 XML 文件。

我想将数据从它添加到 MySQL,但我有问题。

我要添加的数据很深,在"offers"选项卡中。

所需的附加对象写为"<offer ......>".

有很多参数,例如(name model picture price url ....).

我根本无法得到它们,我能得到的最大值"name"来自"<shop>".

如何找到“音乐中心”?

<?php
echo 'ver 3000';
$url = "http://myurlwebsite.com/333.xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data2 = curl_exec ($ch);
curl_close($ch);

echo ' [NEW STRING] ';
//$easy = stristr($data2, '<delivery-options');

$xml = simplexml_load_string($data2);

foreach ($xml -> offer as $row) {
         echo '+';
	$name = $row -> name; 
	echo $name;       
}
?>

在此处输入图像描述

标签: javascriptphpmysqlxml

解决方案


如果您想访问这些<offer>信息,那么您需要指定从文档基础到您之后的数据的路径。请注意,在 SimpleXML 中,根元素<yml_catalog>就是$xml您的情况。

foreach ($xml->shop->offers->offer as $row) {
    echo '+';
    $name = $row -> name;
    echo $name;
}

推荐阅读