The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Не получается отпарсить данные с помощью XML::LibXML"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Не получается отпарсить данные с помощью XML::LibXML"  
Сообщение от jr email(ok) on 29-Мрт-07, 09:54 
Не пойму, почему XML::LibXML ничего не парсит?

[host]$ cat test.pl
#!/usr/bin/perl -w

use strict;
use XML::LibXML;
use Data::Dumper;

my $xml =qq(
<a>
  <b>bb</b>
  <cc>
    <d>ddd</d>
    <e>eee</e>
  </cc>
</a>

);

print $xml;

my $parser = XML::LibXML->new();
my $doc = $parser->parse_string( $xml );
my $root = $doc->getDocumentElement();
my @a = $root->getElementsByTagName( 'a' );

print "parcer: \n" . Dumper $parser;
print "doc: \n" . Dumper $doc;
print "root: \n" . Dumper $root;
print "a: \n" . Dumper @a;

Непосредственно сам вывод скрипта

[host]$ ./test.pl

<a>
  <b>bb</b>
  <cc>
    <d>ddd</d>
    <e>eee</e>
  </cc>
</a>

parcer:
$VAR1 = bless( {
                 'XML_LIBXML_CALLBACK_STACK' => bless( {
                                                         '_CALLBACKS' => []
                                                       }, 'XML::LibXML::InputCallback' ),
                 'XML_LIBXML_KEEP_BLANKS' => 1,
                 'XML_LIBXML_EXT_DTD' => 1,
                 '_State_' => 0
               }, 'XML::LibXML' );
doc:
$VAR1 = bless( do{\(my $o = 135846048)}, 'XML::LibXML::Document' );
root:
$VAR1 = bless( do{\(my $o = 135840048)}, 'XML::LibXML::Element' );
a:

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Не получается отпарсить данные с помощью XML::LibXML"  
Сообщение от NuINu (??) on 30-Мрт-07, 13:48 
>Не пойму, почему XML::LibXML ничего не парсит?
А что б ты хотел получить? Все он у тебя парсит. Вот твой же код, немного переделанный:
#!/usr/bin/perl -w

use strict;
use XML::LibXML;
use Data::Dumper;

my $xml = <<END_XML;
<a>
  <b>bb1</b>
  <b>bb2</b>
  <b>bb3</b>
  <b>bb4</b>
  <cc>
    <d>ddd</d>
    <e>eee</e>
  </cc>
</a>
END_XML


print $xml;

my $parser = XML::LibXML->new();
my $doc = $parser->parse_string( $xml );
my $root = $doc->getDocumentElement();
my ($name, $cont);
my @b = $root->getElementsByTagName( 'b' );
foreach my $b1 (@b) {
  $name = $b1->nodeName;
  $cont = $b1->textContent;
  print "selected $name = $cont\n";
}

вот вывод:
selected b = bb1
selected b = bb2
selected b = bb3
selected b = bb4

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Не получается отпарсить данные с помощью XML::LibXML"  
Сообщение от jr email(ok) on 30-Мрт-07, 18:47 
Дружище, спасибо!
Теперь я немного понял, как работать с этой библиотекой.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру