XMLファイルをCSVファイルに変換するPerlスクリプトを作成する必要があります。私はすでに1つのコンテキストで単純なものを作成しましたが、別のデータセット用にそれを拡張する必要があり、何をすべきかを完全に理解することはできません。
XML::Simpleを使用しています。
データの1つのレコードは次のとおりです。
<custom-objects xmlns="http://www.demandware.com/xml/impex/customobject/2006-10-31">
<custom-object type-id="emailBackInStockHistory" object-id="bczCAiaag0APcaaacLsvpJRmzW">
<object-attribute attribute-id="email">some@email.com</object-attribute>
<object-attribute attribute-id="emailSentAt">2010-04-10T09:00:01.000+0000</object-attribute>
<object-attribute attribute-id="productID">someprodid</object-attribute>
<object-attribute attribute-id="requestedAt">2010-04-09T10:07:54.000+0000</object-attribute>
<object-attribute attribute-id="siteID">someSITEid</object-attribute>
</custom-object>
</custom-objects>
Data :: Dumperモジュールを使用すると、データが次のように解析されることがわかります。
'custom-object' => [
{
'type-id' => 'emailBackInStockHistory',
'object-id' => 'bczCAiaag0APcaaacLsvpJRmzW',
'object-attribute' => [
{
'attribute-id' => 'email',
'content' => 'some@email.com'
},
{
'attribute-id' => 'emailSentAt',
'content' => '2010-04-10T09:00:01.000+0000'
},
{
'attribute-id' => 'productID',
'content' => 'someprodid'
},
{
'attribute-id' => 'requestedAt',
'content' => '2010-04-09T10:07:54.000+0000'
},
{
'attribute-id' => 'siteID',
'content' => 'someSITEid'
}
]
},
このエクスポートを実行するために使用しようとしたコードは次のとおりです。
foreach $o (@{$data->{'custom-object'}}) {
print $o->{'type-id'}, ",";
print $o->{'object-id'}, ",";
print $o->{'custom-object'}->{'object-attribute'}->{'email'}, ",";
print "\n";
type-id
and属性はobject-id
正しく出力されますが、参照からデータを印刷する方法がわかりませんobject-attribute
。