XML::LibXML::Pattern(3pm)      User Contributed Perl Documentation      XML::LibXML::Pattern(3pm)
NAME
       XML::LibXML::Pattern - XML::LibXML::Pattern - interface to libxml2 XPath patterns
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.0134
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.
perl v5.34.0                                2022-02-11                  XML::LibXML::Pattern(3pm)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2025-11-03 22:23 @216.73.216.210 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)