Как получить значение атрибутов при разборе XML с парсером XML :: DOM в perl? - PullRequest
1 голос
/ 14 ноября 2009

Как получить действительное значение атрибута вместо XML::DOM::NamedNodeMap=HASH(0xa3246d4) при использовании функции getAttribute из XML :: DOM parser

код

 my $parent = $doc->getElementsByTagName ("ParentTag")->item(0);
         my @parent = $childnodes->getChildNodes();
         {
           foreach  my $parent(@parent) 
            {
             if ($parent->getNodeType == ELEMENT_NODE)
               {
                 print $parent->getNodeName;
                 print $parent->getAttributes;
               }
            }
         }

1 Ответ

1 голос
/ 14 ноября 2009

Возвращаемое значение getAttributes выглядит как объект XML::DOM::NamedNodeMap, поэтому вы можете использовать этот объект для получения значений атрибута по имени, например,

my $nodemap = $parent->getAttributes;
my $node = $nodemap->getNamedItem('foo');

$node, в свою очередь, будет объектом XML::DOM::Node, который будет иметь свои собственные методы и свою собственную документацию.

Есть много классов, и чтение всех их документов поможет. Если это кажется слишком большим, вы могли бы использовать XML::Simple, который обычно достаточно хорош, пока его больше не будет достаточно: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...