GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  XML::LIBXML::PATTERN (3)

.ds Aq ’

NAME

XML::LibXML::Pattern - XML::LibXML::Pattern - interface to libxml2 XPath patterns

CONTENTS

SYNOPSIS



  use XML::LibXML;
  my $pattern = XML::LibXML::Pattern->new(/x:html/x:body//x:div, { x => http://www.w3.org/1999/xhtml });
  # test a match on an XML::LibXML::Node $node

  if ($pattern->matchesNode($node)) { ... }

  # or on an XML::LibXML::Reader

  if ($reader->matchesPattern($pattern)) { ... }

  # or skip reading all nodes that do not match

  print $reader->nodePath while $reader->nextPatternMatch($pattern);

  $pattern = XML::LibXML::Pattern->new( pattern, { prefix => namespace_URI, ... } );
  $bool = $pattern->matchesNode($node);



DESCRIPTION

This is a perl interface to libxml2’s pattern matching support http://xmlsoft.org/html/libxml-pattern.html. This feature requires recent versions of libxml2.

Patterns are a small subset of XPath language, which is limited to (disjunctions of) location paths involving the child and descendant axes in abbreviated form as described by the extended BNF given below:



  Selector ::=     Path ( | Path )*
  Path     ::=     (.// | // | / )? Step ( / Step )*
  Step     ::=     . | NameTest
  NameTest ::=     QName | * | NCName : *



For readability, whitespace may be used in selector XPath expressions even though not explicitly allowed by the grammar: whitespace may be freely added within patterns before or after any token, where



  token     ::=     . | / | // | | | NameTest



Note that no predicates or attribute tests are allowed.

Patterns are particularly useful for stream parsing provided via the XML::LibXML::Reader interface.
new()


  $pattern = XML::LibXML::Pattern->new( pattern, { prefix => namespace_URI, ... } );



The constructor of a pattern takes a pattern expression (as described by the BNF grammar above) and an optional HASH reference mapping prefixes to namespace URIs. The method returns a compiled pattern object.

Note that if the document has a default namespace, it must still be given an prefix in order to be matched (as demanded by the XPath 1.0 specification). For example, to match an element <a xmlns="http://foo.bar"</a>, one should use a pattern like this:



  $pattern = XML::LibXML::Pattern->new( foo:a, { foo => http://foo.bar });



matchesNode($node)


  $bool = $pattern->matchesNode($node);



Given an XML::LibXML::Node object, returns a true value if the node is matched by the compiled pattern expression.

SEE ALSO

XML::LibXML::Reader for other methods involving compiled patterns.

AUTHORS

Matt Sergeant, Christian Glahn, Petr Pajas

VERSION

2.0124

COPYRIGHT

2001-2007, AxKit.com Ltd.

2002-2006, Christian Glahn.

2006-2009, Petr Pajas.

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 XML::LIBXML::PATTERN (3) 2016-02-27

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.