--- libxml-xpath-perl-1.13.orig/debian/control +++ libxml-xpath-perl-1.13/debian/control @@ -0,0 +1,22 @@ +Source: libxml-xpath-perl +Section: perl +Priority: optional +Maintainer: Debian Perl Group +Uploaders: Jay Bonci , + David Paleino , + Ansgar Burchardt +Standards-Version: 3.8.3 +Homepage: http://search.cpan.org/dist/XML-XPath/ +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libxml-xpath-perl/ +Vcs-Browser: http://svn.debian.org/viewsvn/pkg-perl/trunk/libxml-xpath-perl/ +Build-Depends: debhelper (>= 7.0.50~), quilt (>= 0.46-7) +Build-Depends-Indep: perl, libxml-parser-perl + +Package: libxml-xpath-perl +Architecture: all +Depends: ${misc:Depends}, ${perl:Depends}, libxml-parser-perl +Description: Perl module for processing XPath + The XML::XPath module implements the W3C's XPath specification. It aims to + be completely correct to the letter of the spec, and yet still allow + extensions through the use of functions and variables, such as are + provided by XSLT and XPointer. --- libxml-xpath-perl-1.13.orig/debian/copyright +++ libxml-xpath-perl-1.13/debian/copyright @@ -0,0 +1,29 @@ +Format-Specification: + http://wiki.debian.org/Proposals/CopyrightFormat?action=recall&rev=196 +Upstream-Maintainer: Matt Sergeant +Upstream-Source: http://search.cpan.org/dist/XML-XPath/ +Upstream-Name: XML-XPath + +Files: * +Copyright: © 2000, AxKit.com Ltd. +License-Alias: Perl +License: Artistic | GPL-1+ + +Files: debian/* +Copyright: + © 2009, Ansgar Burchardt +License: Artistic | GPL-1+ + +License: Artistic + This program is free software; you can redistribute it and/or modify + it under the terms of the Artistic License, which comes with Perl. + On Debian GNU/Linux systems, the complete text of the Artistic License + can be found in `/usr/share/common-licenses/Artistic' + +License: GPL-1+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 1, or (at your option) + any later version. + On Debian GNU/Linux systems, the complete text of the GNU General + Public License can be found in `/usr/share/common-licenses/GPL' --- libxml-xpath-perl-1.13.orig/debian/watch +++ libxml-xpath-perl-1.13/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://search.cpan.org/dist/XML-XPath/ .*/XML-XPath-v?(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$ --- libxml-xpath-perl-1.13.orig/debian/libxml-xpath-perl.docs +++ libxml-xpath-perl-1.13/debian/libxml-xpath-perl.docs @@ -0,0 +1 @@ +TODO --- libxml-xpath-perl-1.13.orig/debian/compat +++ libxml-xpath-perl-1.13/debian/compat @@ -0,0 +1 @@ +7 --- libxml-xpath-perl-1.13.orig/debian/README.source +++ libxml-xpath-perl-1.13/debian/README.source @@ -0,0 +1,5 @@ +This package uses quilt to manage all modifications to the upstream +source. Changes are stored in the source package as diffs in +debian/patches and applied during the build. + +See /usr/share/doc/quilt/README.source for a detailed explanation. --- libxml-xpath-perl-1.13.orig/debian/changelog +++ libxml-xpath-perl-1.13/debian/changelog @@ -0,0 +1,163 @@ +libxml-xpath-perl (1.13-7) unstable; urgency=low + + [ gregor herrmann ] + * debian/control: Added: Vcs-Svn field (source stanza); Vcs-Browser + field (source stanza); Homepage field (source stanza). + * Set Maintainer to Debian Perl Group. + * Use dist-based URL in debian/watch. + * Remove changes in upstream Makefile.PL. + * Split out remaining changes in upstream code into patches. + * Add debian/README.source to document quilt usage, as required by + Debian Policy since 3.8.0. + * debian/control: Added: ${misc:Depends} to Depends: field. + + [ David Paleino ] + * debian/control: + - added myself to Uploaders + - moved debhelper to Build-Depends, needed by clean target + - added quilt to Build-Depends + * debian/patches/: + - 01-fix_comparison_bug_RT6363.patch added (Closes: #374672) + + [ Ansgar Burchardt ] + * Refresh debian/rules for debhelper 7. + * Convert debian/copyright to proposed machine-readable format. + * Add missing newline to error message in patches/example.patch. + (Closes: #515248) (LP: #291119) + * debian/control: Mention module name in description. + * Bump Standards-Version to 3.8.3. + * debian/control: Remove duplicate fields Section, Priority from binary + package stanza. + * Add myself to Uploaders. + * Add patch spelling.patch: Fix several spelling errors reported by lintian. + + -- Ansgar Burchardt Wed, 30 Dec 2009 18:35:55 +0900 + +libxml-xpath-perl (1.13-6) unstable; urgency=low + + * Adds debian/watch file so uscan will work + + -- Jay Bonci Wed, 27 Oct 2004 13:22:30 -0400 + +libxml-xpath-perl (1.13-5) unstable; urgency=low + + * New Maintainer (Closes: #210547) + * Removed README file from installation as it is merely a copy of the manpage + * Removed .install file as it is no longer needed. + * Bumped policy version to 3.6.1.0 (No other changes) + + -- Jay Bonci Mon, 15 Mar 2004 16:01:10 -0500 + +libxml-xpath-perl (1.13-4) unstable; urgency=low + + * debian/control: updated sections according to latest archive changes: + - 'libxml-xpath-perl' from 'interpreters' to 'perl' + * debian/control: upgraded build dependency on 'debhelper' to '>= 4.1' + * debian/control: upgraded to Debian Policy 3.6.0 (no changes) + + -- Ardo van Rangelrooij Thu, 4 Sep 2003 22:19:27 -0500 + +libxml-xpath-perl (1.13-3) unstable; urgency=low + + * examples/xpath: fixed erroneous handling of filenames containing a '-' + (closes: Bug#185292) + + -- Ardo van Rangelrooij Wed, 19 Mar 2003 21:25:14 -0600 + +libxml-xpath-perl (1.13-2) unstable; urgency=low + + * examples/xpath: fixed various small typos in the POD + (closes: Bug#180508) + * debian/rules: moved debhelper compatibility level setting to + 'debian/compat' per latest debhelper best practices + + -- Ardo van Rangelrooij Mon, 10 Mar 2003 19:23:41 -0600 + +libxml-xpath-perl (1.13-1) unstable; urgency=low + + * New upstream release + * debian/control: upgraded to Debian Policy 3.5.8 (no changes) + + -- Ardo van Rangelrooij Wed, 29 Jan 2003 15:42:13 -0600 + +libxml-xpath-perl (1.12-1) unstable; urgency=low + + * New upstream release + (closes: Bug#160156) + + -- Ardo van Rangelrooij Fri, 20 Sep 2002 20:06:32 -0500 + +libxml-xpath-perl (1.11-2) unstable; urgency=low + + * debian/rules: upgraded to debhelper v4 + * debian/control: changed build dependency on debhelper accordingly + * debian/rules: migrated from 'dh_movefiles' to 'dh_install' + * debian/rules: split off 'install' target from 'binary-indep' target + * debian/copyright: added pointer to license + + -- Ardo van Rangelrooij Thu, 8 Aug 2002 20:41:35 -0500 + +libxml-xpath-perl (1.11-1) unstable; urgency=low + + * New upstream release + * debian/control: upgraded to Debian Policy 3.5.6 + + -- Ardo van Rangelrooij Fri, 16 Nov 2001 19:32:31 -0600 + +libxml-xpath-perl (1.10-1) unstable; urgency=low + + * New upstream release + * debian/control: upgraded to Debian Policy 3.5.5 + * debian/control: upgraded to Debian Perl Policy 1.20 + + -- Ardo van Rangelrooij Sun, 2 Sep 2001 18:05:42 -0500 + +libxml-xpath-perl (1.09-1) unstable; urgency=low + + * New upstream release + + -- Ardo van Rangelrooij Tue, 24 Apr 2001 20:06:16 -0500 + +libxml-xpath-perl (1.08-1) unstable; urgency=low + + * New upstream release + * debian/control: updated debhelper dependency to remove dh_testversion + * debian/control: upgraded to Debian Policy 3.5.2 + * debian/control: upgraded to Debian Perl Policy 1.17 + * debian/rules: upgraded to Debian Perl Policy 1.17 + + -- Ardo van Rangelrooij Sun, 15 Apr 2001 19:48:42 -0500 + +libxml-xpath-perl (1.04-1) unstable; urgency=low + + * New upstream release + + -- Ardo van Rangelrooij Fri, 19 Jan 2001 19:51:20 -0600 + +libxml-xpath-perl (1.03-1) unstable; urgency=low + + * New upstream release + * debian/control: upgraded to Debian Policy 3.2.1 + * debian/rules: upgraded to debhelper v3 + + -- Ardo van Rangelrooij Wed, 17 Jan 2001 14:13:13 -0600 + +libxml-xpath-perl (1.02-1) unstable; urgency=low + + * New upstream release + + -- Ardo van Rangelrooij Tue, 3 Oct 2000 21:50:17 -0500 + +libxml-xpath-perl (0.99-1) unstable; urgency=low + + * New upstream release + + -- Ardo van Rangelrooij Fri, 8 Sep 2000 12:44:28 +0200 + +libxml-xpath-perl (0.55-1) unstable; urgency=low + + * examples/xpath: patched by Fabien Ninoles + (thanks Fabien!) + * Initial Release + + -- Ardo van Rangelrooij Fri, 21 Jul 2000 10:07:36 +0200 --- libxml-xpath-perl-1.13.orig/debian/rules +++ libxml-xpath-perl-1.13/debian/rules @@ -0,0 +1,3 @@ +#!/usr/bin/make -f +%: + dh --with quilt $@ --- libxml-xpath-perl-1.13.orig/debian/patches/spelling.patch +++ libxml-xpath-perl-1.13/debian/patches/spelling.patch @@ -0,0 +1,36 @@ +From: Ansgar Burchardt +Subject: Fix spelling errors +Date: Wed, 30 Dec 2009 18:32:43 +0900 + +Fix several spelling errors reported by lintian. +--- libxml-xpath-perl.orig/XPath/Node/Element.pm ++++ libxml-xpath-perl/XPath/Node/Element.pm +@@ -431,7 +431,7 @@ + =head2 new ( name, prefix ) + + Create a new Element node with name "name" and prefix "prefix". The name +-be "prefix:local" if prefix is defined. I know that sounds wierd, but it ++be "prefix:local" if prefix is defined. I know that sounds weird, but it + works ;-) + + =head2 getName +--- libxml-xpath-perl.orig/XPath/PerlSAX.pm ++++ libxml-xpath-perl/XPath/PerlSAX.pm +@@ -130,7 +130,7 @@ + + =head1 NAME + +-XML::XPath::PerlSAX - A PerlSAX event generator for my wierd node structure ++XML::XPath::PerlSAX - A PerlSAX event generator for my weird node structure + + =head1 SYNOPSIS + +@@ -152,7 +152,7 @@ + =head1 DESCRIPTION + + This module generates PerlSAX events to pass to a PerlSAX handler such +-as XML::DOM::PerlSAX. It operates specifically on my wierd tree format. ++as XML::DOM::PerlSAX. It operates specifically on my weird tree format. + + Unfortunately SAX doesn't seem to cope with namespaces, so these are + lost completely. I believe SAX2 is doing namespaces. --- libxml-xpath-perl-1.13.orig/debian/patches/fix_comparison_bug_RT6363.patch +++ libxml-xpath-perl-1.13/debian/patches/fix_comparison_bug_RT6363.patch @@ -0,0 +1,97 @@ +Bug: #374672 + +--- a/XPath/Expr.pm ++++ b/XPath/Expr.pm +@@ -330,7 +330,7 @@ sub op_nequals { + + sub op_le { + my ($node, $lhs, $rhs) = @_; +- op_gt($node, $rhs, $lhs); ++ op_ge($node, $rhs, $lhs); + } + + sub op_ge { +@@ -359,31 +359,21 @@ sub op_ge { + !$rh_results->isa('XML::XPath::NodeSet'))) { + # (that says: one is a nodeset, and one is not a nodeset) + +- my ($nodeset, $other); +- my ($true, $false); + if ($lh_results->isa('XML::XPath::NodeSet')) { +- $nodeset = $lh_results; +- $other = $rh_results; +- # we do this because unlike ==, these ops are direction dependant +- ($false, $true) = (XML::XPath::Boolean->False, XML::XPath::Boolean->True); ++ foreach my $node ($lh_results->get_nodelist) { ++ if ($node->to_number->value >= $rh_results->to_number->value) { ++ return XML::XPath::Boolean->True; ++ } ++ } + } + else { +- $nodeset = $rh_results; +- $other = $lh_results; +- # ditto above comment +- ($true, $false) = (XML::XPath::Boolean->False, XML::XPath::Boolean->True); +- } +- +- # True if and only if there is a node in the +- # nodeset such that the result of performing +- # the comparison on (string_value($node)) +- # is true. +- foreach my $node ($nodeset->get_nodelist) { +- if ($node->to_number->value >= $other->to_number->value) { +- return $true; ++ foreach my $node ($rh_results->get_nodelist) { ++ if ( $lh_results->to_number->value >= $node->to_number->value) { ++ return XML::XPath::Boolean->True; ++ } + } + } +- return $false; ++ return XML::XPath::Boolean->False; + } + else { # Neither is a nodeset + if ($lh_results->isa('XML::XPath::Boolean') || +@@ -429,31 +419,21 @@ sub op_gt { + !$rh_results->isa('XML::XPath::NodeSet'))) { + # (that says: one is a nodeset, and one is not a nodeset) + +- my ($nodeset, $other); +- my ($true, $false); + if ($lh_results->isa('XML::XPath::NodeSet')) { +- $nodeset = $lh_results; +- $other = $rh_results; +- # we do this because unlike ==, these ops are direction dependant +- ($false, $true) = (XML::XPath::Boolean->False, XML::XPath::Boolean->True); ++ foreach my $node ($lh_results->get_nodelist) { ++ if ($node->to_number->value > $rh_results->to_number->value) { ++ return XML::XPath::Boolean->True; ++ } ++ } + } + else { +- $nodeset = $rh_results; +- $other = $lh_results; +- # ditto above comment +- ($true, $false) = (XML::XPath::Boolean->False, XML::XPath::Boolean->True); +- } +- +- # True if and only if there is a node in the +- # nodeset such that the result of performing +- # the comparison on (string_value($node)) +- # is true. +- foreach my $node ($nodeset->get_nodelist) { +- if ($node->to_number->value > $other->to_number->value) { +- return $true; ++ foreach my $node ($rh_results->get_nodelist) { ++ if ( $lh_results->to_number->value > $node->to_number->value) { ++ return XML::XPath::Boolean->True; ++ } + } + } +- return $false; ++ return XML::XPath::Boolean->False; + } + else { # Neither is a nodeset + if ($lh_results->isa('XML::XPath::Boolean') || --- libxml-xpath-perl-1.13.orig/debian/patches/example.patch +++ libxml-xpath-perl-1.13/debian/patches/example.patch @@ -0,0 +1,257 @@ +Author: Ardo van Rangelrooij +Description: + * examples/xpath: patched by Fabien Ninoles + (thanks Fabien!) + * examples/xpath: fixed erroneous handling of filenames containing a '-' + (closes: Bug#185292) + * examples/xpath: fixed various small typos in the POD + (closes: Bug#180508) + +--- a/examples/xpath ++++ b/examples/xpath +@@ -1,74 +1,115 @@ + #!/usr/bin/perl -w ++ ++eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}' ++ if 0; # not running under some shell + use strict; + + $| = 1; + +-unless (@ARGV >= 1) { +- print STDERR qq(Usage: +-$0 [filename] query +- +- If no filename is given, supply XML on STDIN. +-); +- exit; +-} +- + use XML::XPath; + +-my $xpath; +- ++my @paths; + my $pipeline; ++my $SUFFIX = "\n"; ++my $PREFIX = ""; ++my $quiet = 0; + +-if ($ARGV[0] eq '-p') { +- # pipeline mode +- $pipeline = 1; +- shift @ARGV; +-} +-if (@ARGV >= 2) { +- $xpath = XML::XPath->new(filename => shift(@ARGV)); +-} +-else { +- $xpath = XML::XPath->new(ioref => \*STDIN); ++ ++PARSE: while ((@ARGV >= 1) && ($ARGV[0] =~ /^-./ )) { ++ OPTIONS: { ++ if ($ARGV[0] eq "-e") { ++ shift; ++ push @paths, shift; ++ last OPTIONS; ++ } ++ if ($ARGV[0] eq "-p") { ++ shift; ++ $PREFIX = shift; ++ last OPTIONS; ++ } ++ if ($ARGV[0] eq "-s") { ++ shift; ++ $SUFFIX = shift; ++ last OPTIONS; ++ } ++ if ($ARGV[0] eq "-q") { ++ $quiet = 1; ++ shift; ++ last OPTIONS; ++ } ++ print STDERR "Unknown option ignore: ", shift; ++ } + } + +-my $nodes = $xpath->find(shift @ARGV); ++unless (@paths >= 1) { ++ print STDERR qq(Usage: ++$0 [options] -e query [-e query...] [filename...] + +-unless ($nodes->isa('XML::XPath::NodeSet')) { +-NOTNODES: +- print STDERR "Query didn't return a nodeset. Value: "; +- print $nodes->value, "\n"; ++ If no filenams are given, supply XML on STDIN. ++ You must provide at least one query. Each supplementary ++ query is done in order, the previous query giving the ++ context of the next one. ++ ++ Options: ++ ++ -q quiet. Only output the resulting PATH ++ -s suffix use suffix instead of linefeed. ++ -p postfix use prefix instead of nothing. ++); + exit; + } + +-if ($pipeline) { +- $nodes = find_more($nodes); +- goto NOTNODES unless $nodes->isa('XML::XPath::NodeSet'); +-} ++do ++{ ++ my $xpath; ++ my @curpaths = @paths; ++ my $filename; ++ if (@ARGV >= 1) { ++ $filename = shift @ARGV; ++ $xpath = XML::XPath->new(filename => $filename); ++ } ++ else { ++ $filename = 'stdin'; ++ $xpath = XML::XPath->new(ioref => \*STDIN); ++ } + +-if ($nodes->size) { +- print STDERR "Found ", $nodes->size, " nodes:\n"; +- foreach my $node ($nodes->get_nodelist) { +- print STDERR "-- NODE --\n"; +- print $node->toString; ++ my $nodes = $xpath->find(shift @curpaths); ++ ++ if ($nodes->isa('XML::XPath::NodeSet')) { ++ while (@curpaths >= 1) { ++ $nodes = find_more($xpath, shift @curpaths, $nodes); ++ last unless $nodes->isa('XML::XPath::NodeSet'); ++ } ++ } ++ ++ if ($nodes->isa('XML::XPath::NodeSet')) { ++ if ($nodes->size) { ++ print STDERR "Found ", $nodes->size, " nodes in $filename:\n" unless $quiet; ++ foreach my $node ($nodes->get_nodelist) { ++ print STDERR "-- NODE --\n" unless $quiet; ++ print $PREFIX, $node->toString, $SUFFIX; ++ } ++ } ++ else { ++ print STDERR "No nodes found in $filename\n" unless $quiet; ++ } ++ } ++ else { ++ print STDERR "Query didn't return a nodeset. Value: "; ++ print $nodes->value, "\n"; + } +-} +-else { +- print STDERR "No nodes found"; +-} + +-print STDERR "\n"; ++} until (@ARGV < 1); + + exit; + + sub find_more { ++ my $xpath = shift; ++ my $find = shift; + my ($nodes) = @_; +- if (!@ARGV) { +- return $nodes; +- } + + my $newnodes = XML::XPath::NodeSet->new; + +- my $find = shift @ARGV; +- + foreach my $node ($nodes->get_nodelist) { + my $new = $xpath->find($find, $node); + if ($new->isa('XML::XPath::NodeSet')) { +@@ -79,5 +120,83 @@ sub find_more { + } + } + +- return find_more($newnodes); ++ return $newnodes; + } ++ ++__END__ ++ ++=head1 NAME ++ ++xpath - a script to query XPath statements in XML documents. ++ ++=head1 SYNOPSIS ++ ++B ++ ++=head1 DESCRIPTION ++ ++B uses the L perl module to make XPath queries ++to any XML document. The L module aims to comply exactly ++to the XPath specification at C and yet ++allows extensions to be added in the form of functions. ++ ++The script takes any number of XPath pointers and tries to apply them ++to each XML document given on the command line. If no file arguments ++are given, the query is done using C as an XML document. ++ ++When multiple queries exist, the result of the last query is used as ++context for the next query and only the result of the last one is output. ++The context of the first query is always the root of the current document. ++ ++=head1 OPTIONS ++ ++=head2 B<-q> ++ ++Be quiet. Output only errors (and no separator) on stderr. ++ ++=head2 B<-s suffix> ++ ++Place C at the end of each entry. Default is a linefeed. ++ ++=head2 B<-p prefix> ++ ++Place C preceding each entry. Default is nothing. ++ ++=head1 BUGS ++ ++The author of this man page is not very fluant in english. Please, ++send him (L) any corrections concerning this text. ++ ++See also L. ++ ++=head1 SEE ALSO ++ ++L. ++ ++=head1 HISTORY ++ ++This module is copyright 2000 Fastnet Software Ltd. This is free ++software, and as such comes with NO WARRANTY. No dates are used in this ++module. You may distribute this module under the terms of either the ++Gnu GPL, or under specific licencing from Fastnet Software Ltd. ++Special free licencing consideration will be given to similarly free ++software. Please don't flame me for this licence - I've put a lot of ++hours into this code, and if someone uses my software in their product ++I expect them to have the courtesy to contact me first. ++ ++Full support for this module is available from Fastnet Software Ltd on ++a pay per incident basis. Alternatively subscribe to the Perl-XML ++mailing list by mailing lyris@activestate.com with the text: ++ ++ SUBSCRIBE Perl-XML ++ ++in the body of the message. There are lots of friendly people on the ++list, including myself, and we'll be glad to get you started. ++ ++Matt Sergeant, matt@sergeant.org ++ ++This man page was added as well as some serious modifications to the script ++by Fabien Ninoles for the Debian Project. ++ ++=cut ++ --- libxml-xpath-perl-1.13.orig/debian/patches/series +++ libxml-xpath-perl-1.13/debian/patches/series @@ -0,0 +1,4 @@ +fix_comparison_bug_RT6363.patch +example.patch +test.patch +spelling.patch --- libxml-xpath-perl-1.13.orig/debian/patches/test.patch +++ libxml-xpath-perl-1.13/debian/patches/test.patch @@ -0,0 +1,55 @@ +--- /dev/null ++++ b/t/base.t +@@ -0,0 +1,52 @@ ++print "1..6\n"; ++use XML::XPath; ++use XML::XPath::Parser; ++use XML::XPath::XMLParser; ++ ++# $XML::XPath::Debug = 1; ++ ++my $p = XML::XPath->new( filename => 'examples/test.xml' ); ++if ($p) { print "ok 1\n"; } ++else { print "not ok 1\n"; } ++ ++my $pp = XML::XPath::Parser->new(); ++if ($pp) { print "ok 2\n"; } ++else { print "not ok 2\n"; } ++ ++$pp->parse("variable('amount', number(number(./rate/text()) * number(./units_worked/text())))"); ++ ++my $path = $pp->parse('.// ++ tag/ ++ child::*/ ++ processing-instruction("Fred")/ ++ self::node()[substr("33", 1, 1)]/ ++ attribute::ra[../@gunk] ++ [(../../@att="va\'l") and (@bert = "geee")] ++ [position() = child::para/fred] ++ [0 -.3]/ ++ geerner[(farp | blert)[predicate[@vee]]]'); ++ ++if ($path) { print "ok 3\n"; } ++else { print "not ok 3\n"; } ++ ++#$path = $pp->parse('param|title'); ++ ++warn "PATH: ", $path->as_string, "\n\n"; ++ ++if ($path->as_string) { # eq q^(self::node()/descendant-or-self::node()/child::tag/child::*/child::processing-instruction('Fred')/child::id((child::xml/child::vccc/child::bbbb/attribute::fer))/self::node()[(substr(('33'),(1),(1)))]/attribute::ra[(parent::node()/attribute::gunk)][((parent::node()/parent::node()/attribute::att = ('va'l')) and ((attribute::bert = ('geee'))))][(position() = (child::para/child::fred))][(.3)]/child::geerner[((child::fart | (child::blert))[(child::predicate[(attribute::vee)])])])^ ) { ++ print "ok 4\n"; ++} ++else { print "not ok 4\n"; } ++ ++my $nodes = $p->find('/timesheet//wednesday'); ++ ++# warn "$nodes size: ", $nodes->size, "\n"; ++ ++if ($nodes->size) { print "ok 5\n"; } ++else { print "not ok 5\n"; } ++ ++foreach my $node ($nodes->get_nodelist) { ++ warn "NODES:\n", XML::XPath::XMLParser::as_string($node), "\n\n"; ++} ++ ++print "ok 6\n";