我有一个使用 .xml 解析一些 XML 的程序XML::Simple
。在某些时候,XML 中似乎有多余的条目,这些条目会被序列化,但我终其一生都无法弄清楚如何将这些数据作为简单的字符串取回。该 XML 的一个子集似乎被XML::Simple
. Dumper($data)
运行where data is my parsed XML时,相关小节如下。
Audio = [
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
}
];
我将我的 XML 解析输出的一小部分传递给一个变量,如下所示:
my @audiostuff = $data->{ClipContent}->{EssenceList}->{Audio};
当我输出这个转储时,我得到以下信息
$VAR1 = [
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
},
{
'AudioIndex' => {
'StartByteOffset' => '32768',
'DataSize' => '3071872'
},
'SamplingRate' => '48000',
'BitsPerSample' => '16',
'AudioFormat' => 'MXF'
}
];
所以在捕获的数组中一切似乎都是正确的。该数组似乎有一个元素,并且在该元素内有四个哈希值。这就是我卡住的地方。我不知道如何将这些散列中的信息再次取出。我已经尝试了大约 40 种不同的东西,但我只是用头撞墙。我很想将每个散列的值传递给一个简单的本地数组(@samplingrate
例如),其中我有所有这四个条目,并且可以通过$samplingrate[0]
等简单地引用它们。
任何帮助,将不胜感激。