我有一个链接到一个包含不同值的在线XML文件。我已经编写了一段代码,允许我检索这个文件中两个特定标记的内容,并将它们放入一个csv文件中。
第一个标记是:
<g:id>...</g:id>
第二个是带有以下内容的url:
<g:link>...</g:link>
我的问题是,在输出csv文件中,我确实得到了URL,但它们是放在列中的,而id没有放在我的csv文件中:
我怎样才能让输出文件像这样呢?
<?php
//Function for split string
function multiSplit($string)
{
$output = array();
$cols = explode("<g:image_link>", $string);
foreach ($cols as $col)
{
$dashcols = explode("</g:image_link>", $col);
$output[] = $dashcols[0];
}
return $output;
}
//Function for split string
function multiSplit2($string)
{
$output = array();
$cols = explode("<g:id>", $string);
foreach ($cols as $col)
{
$dashcols = explode("</g:id>", $col);
$output[] = $dashcols[0];
}
return $output;
}
$html = file_get_contents('https://www.ripcurl.eu/assets/fb_product_feed_eur.xml');
$url = multiSplit($html);
$id = multiSplit2($html);
$idfinal = $id[1].'-RC';
print_r($idfinal); //BDGTP6-RC
echo '<br>';
print_r($url[1]); //https://dwk1ydkfsczz3.cloudfront.net/images/2020/06/15/BDGTP6-0070-1jpg-051717be-657e-4f08-9d75-914926540fd4.jpg
$name = "BI4_".date('Ymd_His').".csv";
$cheminfile = "C:/wamp64/www/retail_BI/".$name;
$fp = fopen("$cheminfile", "w");
$delimiter = ';';
fputcsv($fp, array('stylecode', 'images'), $delimiter);
foreach ( $url as $ur ) {
fputcsv($fp, $url, $delimiter);
}
fclose($fp);
?>
您可以使用SimpleXML解析XML并查找数据,而不是尝试在XML字符串中搜索。
请注意,fputcvs()
将数组作为第二个参数。
$delimiter = ';';
$fp = fopen($cheminfile, "w");
$xml = simplexml_load_file('https://www.ripcurl.eu/assets/fb_product_feed_eur.xml');
fputcsv($fp, array('stylecode', 'images'), $delimiter);
// loop over items in "channel"
foreach ($xml->channel->item as $item)
{
// get values for `g:` namespace
$children = $item->children("http://base.google.com/ns/1.0");
// get id and link
$id = (string) $children->id;
$link = (string) $children->image_link;
// add values to CSV
fputcsv($fp, [$id, $link], $delimiter);
}
fclose($fp);
将生成如下所示的CSV文件:
stylecode;images
BDGTP6;https://dwk1ydkfsczz3.cloudfront.net/images/2020/06/15/BDGTP6-0070-1jpg-051717be-657e-4f08-9d75-914926540fd4.jpg
CFEBL9;https://dwk1ydkfsczz3.cloudfront.net/images/2020/08/03/CFEBL9-0090-1jpg-a9bd9dda-a775-4b4f-af00-3dcbf261bc2d.jpg
问题内容: 我想将先前从其他文件(已经完成)中提取的一系列文件添加到jar中。这些文件将覆盖JAR中的文件。最有效的方法是什么?我需要它快。谢谢! 问题答案: 请记住,JAR文件是ZIP文件。 只需使用一些ZIP库。
问题内容: 我有几个CSV文件,如下所示: 我想在所有CSV文件中添加一个新列,使其看起来像这样: 到目前为止,我的脚本是: (Python 3.2) 但是在输出中,脚本跳过了每一行,新列中仅包含Berry: 问题答案: 这应该使您知道该怎么做: 编辑,注意在py3k中必须使用 感谢您接受答案。在这里,您有一个好处(您的工作脚本): 请注意 中的参数。默认情况下,它设置为,这就是为什么间距为两倍的
如果我加上 然后我得到下面的错误。 在我的蓝图中使用camel-http4的正确方式是什么?在卡拉夫的camel路由中使用camel-http4的正确方式是什么?我应该如何修改功能。xml? 组织。奥斯基。服务分解器。ResolutionException:无法解析根:缺少需求[root]osgi。身份奥斯基。身份=社会身份。卡尔;类型=卡拉夫。特色version=“[1.0.0.快照,1.0.0
问题内容: 有人可以向我解释如何将WAR文件添加到EAR吗?我有一个已经包含一个WAR文件的EAR文件,我有另一个我想添加到该EAR的WAR文件,因此它可以同时包含两个WAR并正常工作。 我不知道该怎么做,但我认为可以手动更改EAR中包含的application.xml文件。 谢谢! 问题答案: 假设EAR文件中尚未包含WAR文件,则可以使用常见的zip实用程序在EAR文件中添加WAR文件。 请注
问题内容: 我正在将对象编组到XML文件中。如何将注释添加到该XML文件中? 问题答案: 我看不到单独使用JAXB的方法。但是,我认为您可以利用DOM达到预期的效果: 其中jaxbContext是您正在使用的JAXBContext对象,而jaxbObject是要编组的对象。该示例仅将注释附加到文档末尾。对于其他位置,您将不得不遍历doc对象的DOM或使用XPath来查找要添加注释的确切元素,并在其
问题内容: 我想知道是否可以使用函数将数据框添加到现有的csv文件中。csv文件与加载的数据具有相同的结构。 问题答案: 你可以在函数中指定python写入模式。对于追加,它是。 在你的情况下: 默认模式为。