我想将Google购物XML导入Google电子表格,但Google电子表格显示错误:
错误 url内容的资源超过了最大大小。
我需要导入数据(并且每6小时更新一次),我不知道这个错误是怎么回事。
我使用的一个例子是:
=IMPORTXML("http://avambu.xtechcommerce.com/datafeeds/google_shopping","//channel/item")
但是使用更大的XML。
有一个脚本或其他解决方案吗?
谢谢!
答案 0 :(得分:1)
我现在找到的最佳解决方案是使用PHP脚本。
$filexml = 'GoogleProductFeed.xml';
$xml = simplexml_load_file($filexml);
$xml->registerXPathNamespace('g', 'http://base.google.com/ns/1.0');
if (file_exists($filexml)) {
$xml = simplexml_load_file($filexml);
$i = 1; // Position counter
$values = []; // PHP array
// Writing column headers
$columns = array('title', 'link', 'description', 'g:availability', 'g:price', 'g:image_link', 'g:product_type',
'g:google_product_category', 'g:condition', 'g:identifier_exists', 'g:id');
$fs = fopen('GoogleProductFeed.csv', 'w');
fputcsv($fs, $columns);
fclose($fs);
// Iterate through each <item> node
$node = $xml->xpath('//item');
foreach ($node as $n) {
// Iterate through each child of <item> node
foreach ($columns as $col) {
$values[] = trim($xml->xpath('//item['.$i.']/'.$col)[0]);
}
// Write to CSV files (appending to column headers)
$fs = fopen('GoogleProductFeed.csv', 'a');
fputcsv($fs, $values);
fclose($fs);
$values = []; // Clean out array for next <item> (i.e., row)
$i++; // Move to next <item> (i.e., node position)
}
}
感谢@Parfait为另一个question提供了更好的PHP脚本的答案。
要自动运行脚本,我需要使用linux服务器上的CRON。