summaryrefslogtreecommitdiff
path: root/lib/XML/LibXML/XPathExpression.pod
blob: 0df643fcc7cb90902e26908730f56f5ef0c883a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
=head1 NAME

XML::LibXML::XPathExpression - XML::LibXML::XPathExpression - interface to libxml2 pre-compiled XPath expressions

=head1 SYNOPSIS



  use XML::LibXML;
  my $compiled_xpath = XML::LibXML::XPathExpression->new('//foo[@bar="baz"][position()<4]');

  # interface from XML::LibXML::Node

  my $result = $node->find($compiled_xpath);
  my @nodes = $node->findnodes($compiled_xpath);
  my $value = $node->findvalue($compiled_xpath);

  # interface from XML::LibXML::XPathContext

  my $result = $xpc->find($compiled_xpath,$node);
  my @nodes = $xpc->findnodes($compiled_xpath,$node);
  my $value = $xpc->findvalue($compiled_xpath,$node);

  $compiled = XML::LibXML::XPathExpression->new( xpath_string );

=head1 DESCRIPTION

This is a perl interface to libxml2's pre-compiled XPath expressions.
Pre-compiling an XPath expression can give in some performance benefit if the
same XPath query is evaluated many times. C<<<<<< XML::LibXML::XPathExpression >>>>>> objects can be passed to all C<<<<<< find... >>>>>> functions C<<<<<< XML::LibXML >>>>>> that expect an XPath expression.

=over 4

=item new()

  $compiled = XML::LibXML::XPathExpression->new( xpath_string );

The constructor takes an XPath 1.0 expression as a string and returns an object
representing the pre-compiled expressions (the actual data structure is
internal to libxml2).



=back

=head1 AUTHORS

Matt Sergeant,
Christian Glahn,
Petr Pajas


=head1 VERSION

2.0204

=head1 COPYRIGHT

2001-2007, AxKit.com Ltd.

2002-2006, Christian Glahn.

2006-2009, Petr Pajas.

=cut


=head1 LICENSE

This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.