如何在perl中使用XML :: DOM解析器解析xml时获取属性值?

时间:2009-11-13 22:16:19

标签: xml perl dom

在使用XML :: DOM解析器中的getAttribute函数时,如何获取实际属性值而不是XML::DOM::NamedNodeMap=HASH(0xa3246d4)

代码

 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 个答案:

答案 0 :(得分:1)

getAttributes的返回值看起来是XML::DOM::NamedNodeMap对象,因此您可以使用该对象按名称获取属性值,例如

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

$node反过来将是一个XML::DOM::Node对象,它将拥有自己的方法并拥有自己的文档。

有很多课程,阅读所有docs会有所帮助。如果它看起来太多了,你可能可以使用XML::Simple,这通常足够好,直到它不再足够好: - )