#!/usr/bin/perl -w use strict; use XML::LibXML; use Foo; my $foo = Foo->new(); my $doc = XML::LibXML::Document->new(); print "\$foo is a ", ref($foo), " object reference\n"; my $docelem = XML::LibXML::Element->new('Root'); $doc->setDocumentElement($docelem); $docelem->appendChild($foo); $foo->setName('Bar'); my $name = $foo->getName(); print qq{\$foo->getName() returned "$name"\n\n}; print qq{Notice that my object has type "Foo" here:\n}; my $localname = $foo->localname(); print "My object: $foo ($localname)\n\n"; my $nodes = $doc->findnodes('//Name'); my $s = scalar(@{$nodes}) == 1 ? '' : 's'; print "Found ", scalar(@{$nodes}), " node$s:\n"; foreach my $node (@{$nodes}) { print " ", $node->toString(), "\n"; my $parent = $node->parentNode(); print " From a subelement of my object, I call parentNode().\n"; print " Now notice that my object is no longer a Foo object:\n\n"; my $plm = $parent->localname(); print " My parent: $parent ($plm)\n\n"; print " The reference returned by parantNode() is not the same\n"; print " as the original reference:\n\n"; print " ($foo != $parent)\n"; } print "\n", "Document:\n", $doc->toString(), "\n";