Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / XML::LibXML::Pattern.3pm
1 .\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
65 .    \" fudge factors for nroff and troff
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 .    \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 .    \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 .    \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "XML::LibXML::Pattern 3"
127 .TH XML::LibXML::Pattern 3 "2009-10-07" "perl v5.8.7" "User Contributed Perl Documentation"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 XML::LibXML::Pattern \- XML::LibXML::Pattern \- interface to libxml2 XPath patterns
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 .Vb 3
137 \&  use XML::LibXML;
138 \&  my $pattern = new XML::LibXML::Pattern(\*(Aq/x:html/x:body//x:div\*(Aq, { \*(Aqx\*(Aq => \*(Aqhttp://www.w3.org/1999/xhtml\*(Aq });
139 \&  # test a match on a XML::LibXML::Node $node
140 \&
141 \&  if ($pattern\->matchesNode($node)) { ... }
142 \&
143 \&  # or on a XML::LibXML::Reader
144 \&
145 \&  if ($reader\->matchesPattern($pattern)) { ... }
146 \&
147 \&  # or skip reading all nodes that do not match
148 \&
149 \&  print $reader\->nodePath while $reader\->nextPatternMatch($pattern);
150 \&
151 \&  $pattern = XML::LibXML::Pattern\->new( pattern, { prefix => namespace_URI, ... } );
152 \&  $bool = $pattern\->matchesNode($node);
153 .Ve
154 .SH "DESCRIPTION"
155 .IX Header "DESCRIPTION"
156 This is a perl interface to libxml2's pattern matching support \fIhttp://xmlsoft.org/html/libxml\-pattern.html\fR. This feature requires recent versions of libxml2.
157 .PP
158 Patterns are a small subset of XPath language, which is limitted to
159 (disjunctions of) location paths involving the child and descendant axes in
160 abbreviated form as described by the extended \s-1BNF\s0 given below:
161 .PP
162 .Vb 4
163 \&  Selector ::=     Path ( \*(Aq|\*(Aq Path )*
164 \&  Path     ::=     (\*(Aq.//\*(Aq | \*(Aq//\*(Aq | \*(Aq/\*(Aq )? Step ( \*(Aq/\*(Aq Step )*
165 \&  Step     ::=     \*(Aq.\*(Aq | NameTest
166 \&  NameTest ::=     QName | \*(Aq*\*(Aq | NCName \*(Aq:\*(Aq \*(Aq*\*(Aq
167 .Ve
168 .PP
169 For readability, whitespace may be used in selector XPath expressions even
170 though not explicitly allowed by the grammar: whitespace may be freely added
171 within patterns before or after any token, where
172 .PP
173 .Vb 1
174 \&  token     ::=     \*(Aq.\*(Aq | \*(Aq/\*(Aq | \*(Aq//\*(Aq | \*(Aq|\*(Aq | NameTest
175 .Ve
176 .PP
177 Note that no predicates or attribute tests are allowed.
178 .PP
179 Patterns are particularly useful for stream parsing provided via the \f(CW\*(C`XML::LibXML::Reader\*(C'\fR interface.
180 .IP "\fInew()\fR" 4
181 .IX Item "new()"
182 .Vb 1
183 \&  $pattern = XML::LibXML::Pattern\->new( pattern, { prefix => namespace_URI, ... } );
184 .Ve
185 .Sp
186 The constructor of a pattern takes a pattern expression (as described by the
187 \&\s-1BNF\s0 grammar above) and an optional \s-1HASH\s0 reference mapping prefixes to namespace
188 URIs. The method returns a compiled pattern object.
189 .Sp
190 Note that if the document has a default namespace, it must still be given an
191 prefix in order to be matched (as demanded by the XPath 1.0 specification). For
192 example, to match an element \f(CW\*(C`<a xmlns="http://foo.bar"</a>\*(C'\fR, one should use a pattern like this:
193 .Sp
194 .Vb 1
195 \&  $pattern = XML::LibXML::Pattern\->new( \*(Aqfoo:a\*(Aq, { foo => \*(Aqhttp://foo.bar\*(Aq });
196 .Ve
197 .IP "matchesNode($node)" 4
198 .IX Item "matchesNode($node)"
199 .Vb 1
200 \&  $bool = $pattern\->matchesNode($node);
201 .Ve
202 .Sp
203 Given a XML::LibXML::Node object, returns a true value if the node is matched
204 by the compiled pattern expression.
205 .SH "SEE ALSO"
206 .IX Header "SEE ALSO"
207 XML::LibXML::Reader for other methods involving compiled patterns.
208 .SH "AUTHORS"
209 .IX Header "AUTHORS"
210 Matt Sergeant, 
211 Christian Glahn, 
212 Petr Pajas
213 .SH "VERSION"
214 .IX Header "VERSION"
215 1.70
216 .SH "COPYRIGHT"
217 .IX Header "COPYRIGHT"
218 2001\-2007, AxKit.com Ltd.
219 .PP
220 2002\-2006, Christian Glahn.
221 .PP
222 2006\-2009, Petr Pajas.