![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Poison |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
Разобрался как работает XML::Simple с файлами с простой структурой, таких как:
<?xml version='1.0'?> <employees> <employee> <name>John Doe</name> <age>43</age> <sex>M</sex> <department>Operations</department> </employee> <employee> <name>Jane Doe</name> <age>31</age> <sex>F</sex> <department>Accounts</department> </employee> <employee> <name>Be Goode</name> <age>32</age> <sex>M</sex> <department>Human Resources</department> </employee> </employees> А что делать если есть ещё и вложенные тэги, как до них добраться? |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
посмотреть структуру через Data::Dumper?
|
|||
|
||||
| Poison |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
arto, мне сами значения надо выцепить
|
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
# perl -MXML::Simple -MData::Dumper -le 'print Dumper XMLin ($ARGV[0])' =(cat)
<?xml version='1.0'?> <employees> <employee> <name>John Doe</name> <age>43</age> <sex>M</sex> <department>Operations</department> </employee> <employee> <name>Jane Doe</name> <age>31</age> <sex>F</sex> <department>Accounts</department> </employee> <employee> <name>Be Goode</name> <age>32</age> <sex>M</sex> <department>Human Resources</department> </employee> </employees> ^D $VAR1 = { 'employee' => { 'Be Goode' => { 'department' => 'Human Resources', 'age' => '32', 'sex' => 'M' }, 'John Doe' => { 'department' => 'Operations', 'age' => '43', 'sex' => 'M' }, 'Jane Doe' => { 'department' => 'Accounts', 'age' => '31', 'sex' => 'F' } } }; # и смотрите путь в хеше до значений. |
|||
|
||||
| Poison |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
arto, с этим то я разобрался
а как например добраться до массы вот здесь
можно код написать, если не сложно |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
$VAR1 = {
'content' => ' ... ', 'species' => { 'conservation' => { 'status' => 'no special status' }, 'common-name' => 'Dromedary, or Arabian Camel', 'name' => 'Camelus dromedarius', 'physical-characteristics' => { 'mass' => '300 to 690 kg.' } } }; следовательно, $VAR1->{'species'}->{'physical-characteristics'}->{'mass'} |
|||
|
||||
| Poison |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
arto, ну я так и делаю, а он ничего не выдаёт
|
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
у мну работает:
# perl -MXML::Simple -MData::Dumper -le '$a = XMLin ($ARGV[0]); print $a->{"species"}->{"physical-characteristics"}->{"mass"};' =(cat) <?xml version="1.0"?> <camelids> <species name="Camelus dromedarius"> <common-name>Dromedary, or Arabian Camel</common-name> <physical-characteristics> <mass>300 to 690 kg.</mass> </physical-characteristics> <conservation status="no special status"> </conservation> </species> ... </camelids> ^D 300 to 690 kg. # |
|||
|
||||
| Poison |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 2.2.2007 Репутация: нет Всего: нет |
arto,
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |