私はXmlSimpleを使用していますが、私が抱えている問題は、エントリのリストを解析し、同様のxmlタグを持つエントリの数を決定することです。
<ItemList>
<Item>
<ItemId>123</ItemId>
<ItemName>abc</ItemName>
<ItemType>xyz</ItemType>
<Status>ok</Status>
</Item>
</ItemList>
上記はこのように解析されます-
"ItemList"=> {
"Item"=>{ "ItemId"=>"123",
"ItemName"=>"abc",
"ItemType"=>"xyz",
"Status"=>"ok"
}
},
そして、私はそれにアクセスします- ['ItemList']['Item']['ItemId']
、どこにもインデックス番号なしで。
しかし、ItemListに1つ以上のエントリがある場合、それは私のアプリケーションを台無しにします。
<ItemList>
<Item>
<ItemId>123</ItemId>
<ItemName>abc</ItemName>
<ItemType>xyz</ItemType>
<Status>bad</Status>
</Item>
<Item>
<ItemId>456</ItemId>
<ItemName>fgh</ItemName>
<ItemType>nbv</ItemType>
<Status>bad</Status>
</Item>
</ItemList>
上記はこのように解析されます-
"ItemList"=> {
"Item"=>{ "ItemId"=>"123",
"ItemName"=>"abc",
"ItemType"=>"xyz",
"Status"=>"bad"
},
"Item"=>{ "ItemId"=>"456",
"ItemName"=>"fgh",
"ItemType"=>"nbv",
"Status"=>"bad"
}
},
['ItemList']['Item'][0]['ItemId']
-およびとしてアクセスできます['ItemList']['Item'][1]['ItemId']
。インデックス番号を手動で提供します。ただし、リストにアイテムがいくつあるかわからないため、実際のアプリではインデックス番号を指定できないため、xmlにエントリがないか、数百のアイテムが含まれている可能性があります。のこぎりを使うことを考えましたが、同じ構文解析動作をします。これをどのように処理しますか?