私はPerlでxmlファイルを解析していますが、すべてが1つの問題でうまくいくようです。私は同じスキーマを持つファイルを持っていますが、パーサから異なる種類のデータを返しています。ここで簡単な例である:データの同様のセットのために、(2つのハッシュの配列であるテストに注意してください)Perl、XMLでXMLを解析する::シンプルで問題がある
$VAR1 = {
'test' => [
{
'data2' => 'Hello',
'data1' => 'Hi'
},
{
'data2' => 'Hello2',
'data1' => 'Hi2'
}
]
};
ここで、:ダンプで
<tests>
<test>
<data1>Hi</data1>
<data2>Hello</data2>
</test>
<test>
<data1>Hi2</data1>
<data2>Hello2</data2>
</test>
</tests>
、これは以下を返しますしかしこれ等つのみ「テスト」エンティティと:試験エンティティがもはや配列が、特異ハッシュされることを除い
<tests>
<test>
<data1>Hi</data1>
<data2>Hello</data2>
</test>
</tests>
これは、同様のデータを返さない:
$VAR1 = {
'test' => {
'data2' => 'Hello',
'data1' => 'Hi'
}
};
私のジレンマは、私のコードでは、そこに配列があると予想しているということです。しかし、1つのエンティティだけが存在するスリムなチャンスでは、そのエンティティのハッシュが返されます。私の質問は、配列のようにハッシュエンティティをどのように扱うことができるかということです。またはそれをテストしますか?
今の配列を取得するための私のコードは次のようである:
foreach $test (@{$data->{'tests'}->{'test'}})
{
do something with $test
}
しかし、ハッシュと、それはエラー「未ARRAYのリファレンス」を与えます。私はこれが十分な詳細だと思う!ありがとう!!!
ありがとう!これは私にとって完璧に機能しました! – srowley