我有这个我试图导入的XML:
<products>
<product product_id="62" title="Product Title" description="<p>desc</p>" price="40" brand="" weight="100" in_stock="Y"/>
<product product_id="63" title="Product Title" description="<p>desc</p>" price="40" brand="" weight="100" in_stock="Y"/>
</products>
我使用的是Laravel 5和这个软件包:https://github.com/orchestral/parser
所以我正在运行此代码:
$xml = XmlParser::load('https://www.url/feed.xml');
$product = $xml->parse([
'product_id' => ['uses' => 'product::product_id'],
'title' => ['uses' => 'product::title'],
'description' => ['uses' => 'product::description'],
]);
dd($product);
但它只是在一个数组中返回一个产品,这个产品甚至不是XML中的第一个或最后一个产品。所以我有点困惑。
有人有任何想法吗?
感谢。
答案 0 :(得分:5)
我最终做的是:
$xml = XmlParser::load('https://www.url/feed.xml');
$products = $xml->getContent();
foreach($products as $product) {
$item->title = $product['title'];
$item->save();
}
答案 1 :(得分:0)
您可以尝试&#34; simplexml_load_string()&#34;在Laravel。
当您使用此功能解析xml文件时,您不需要在Laravel项目中包含其他插件。
参考:http://www.w3schools.com/php/func_simplexml_load_string.asp
例如:
$test_strting="<posts>
<post>
<title>Title1</title>
</post>
<post>
<title>Title2</title>
</post>
</posts>";
$xml = simplexml_load_string($test_strting);
foreach ($xmltest->post as $key => $value)
{
$title = (string) $value->title;
echo("Title: ".$title);
}