1
所以我有一些xml文件是這樣的:遍歷XML ::簡單結構
<?xml version="1.0" encoding="ISO-8859-1"?>
<root result="0" >
<settings user="anonymous" >
<s n="blabla1" >
<v>true</v>
</s>
<s n="blabla2" >
<v>false</v>
</s>
<s n="blabla3" >
<v>true</v>
</s>
</settings>
</root>
我想用XML的簡單通過所有的設置去。
這裏是我有當我打印用數據::自卸車輸出:
$VAR1 = {
'settings' => {
'user' => 'anonymous',
's' => [
{
'n' => 'blabla1',
'v' => 'true'
},
{
'n' => 'blabla2',
'v' => 'false'
},
{
'n' => 'blabla3',
'v' => 'true'
}
]
},
'result' => '0'
};
這裏是我的代碼
$xml = new XML::Simple;
$data = $xml->XMLin($file);
foreach $s (keys %{ $data->{'settings'}->{'s'} }) {
print "TEST: $s $data->{'settings'}->{'s'}->[$s]->{'n'} $data->{'settings'}->{'s'}->[$s]->{'v'}<br>\n";
}
,並返回這兩條線,不循環:
TEST: n blabla1 true
TEST: v blabla1 true
我也試過這樣做:
foreach $s (keys @{ $data->{'settings'}->{'s'} }) {
沒有任何成功:
Type of arg 1 to keys must be hash (not array dereference)
我可以打印:
$data->{'settings'}->{'s'}->[1]->{'n'} $data->{'settings'}->{'s'}->[1]->{'v'}
對於每種設置,但我無法通過它們循環。
我該怎麼辦?我究竟做錯了什麼?
非常感謝!
啊該死的,我離開了這個詞的「鑰匙」,當我試圖解析@array。 – David
假設你不知道他們的鍵「n」和「v」的名字,你會打印出鍵「n」和「v」以及它們各自的值嗎? – swl1020
@ swl1020:你問的是如何在散列引用上運行'keys'? – choroba