+nodes), placing it as the last children of the first innermost element.
# "123Test
"
$dom->parse('Test
')->at('p')->wrap_content('123')->root;
@@ -673,7 +900,7 @@ children of the first innermost element.
$dom = $dom->xml($bool);
Disable HTML semantics in parser and activate case-sensitivity, defaults to
-auto detection based on processing instructions.
+auto detection based on XML declarations.
=head1 COLLECTION METHODS
@@ -732,8 +959,8 @@ passed to the callback and is also available as C<$_>.
# Longer version
my $first = $collection->first(sub { $_->$method(@args) });
- # Find first value that contains the word "dom"
- my $interesting = $collection->first(qr/dom/i);
+ # Find first value that contains the word "tiny"
+ my $interesting = $collection->first(qr/tiny/i);
# Find first value that is greater than 5
my $greater = $collection->first(sub { $_ > 5 });
@@ -764,8 +991,8 @@ C<$_>.
# Longer version
my $new = $collection->grep(sub { $_->$method(@args) });
- # Find all values that contain the word "dom"
- my $interesting = $collection->grep(qr/dom/i);
+ # Find all values that contain the word "tiny"
+ my $interesting = $collection->grep(qr/tiny/i);
# Find all values that are greater than 5
my $greater = $collection->grep(sub { $_ > 5 });
@@ -799,8 +1026,8 @@ passed to the callback and is also available as C<$_>.
# Longer version
my $new = $collection->map(sub { $_->$method(@args) });
- # Append the word "dom" to all values
- my $domified = $collection->map(sub { $_ . 'dom' });
+ # Append the word "tiny" to all values
+ my $domified = $collection->map(sub { $_ . 'tiny' });
=head2 reduce
@@ -886,237 +1113,29 @@ callback/method.
# $collection contains ([1, 2], [2, 1], [3, 2])
$collection->uniq(sub{ $_->[1] })->to_array; # "[[1, 2], [2, 1]]"
-=head1 SELECTORS
-
-L uses a CSS selector engine based on L. All CSS
-selectors that make sense for a standalone parser are supported.
-
-=head2 *
-
-Any element.
-
- my $all = $dom->find('*');
-
-=head2 E
-
-An element of type C.
-
- my $title = $dom->at('title');
-
-=head2 E[foo]
-
-An C element with a C attribute.
-
- my $links = $dom->find('a[href]');
-
-=head2 E[foo="bar"]
-
-An C element whose C attribute value is exactly equal to C.
-
- my $case_sensitive = $dom->find('input[type="hidden"]');
- my $case_sensitive = $dom->find('input[type=hidden]');
-
-=head2 E[foo="bar" i]
-
-An C element whose C attribute value is exactly equal to any
-(ASCII-range) case-permutation of C. Note that this selector is
-EXPERIMENTAL and might change without warning!
-
- my $case_insensitive = $dom->find('input[type="hidden" i]');
- my $case_insensitive = $dom->find('input[type=hidden i]');
- my $case_insensitive = $dom->find('input[class~="foo" i]');
-
-This selector is part of
-L, which is still a work
-in progress.
-
-=head2 E[foo~="bar"]
-
-An C element whose C attribute value is a list of whitespace-separated
-values, one of which is exactly equal to C.
-
- my $foo = $dom->find('input[class~="foo"]');
- my $foo = $dom->find('input[class~=foo]');
-
-=head2 E[foo^="bar"]
-
-An C element whose C attribute value begins exactly with the string
-C.
-
- my $begins_with = $dom->find('input[name^="f"]');
- my $begins_with = $dom->find('input[name^=f]');
-
-=head2 E[foo$="bar"]
-
-An C element whose C attribute value ends exactly with the string
-C.
-
- my $ends_with = $dom->find('input[name$="o"]');
- my $ends_with = $dom->find('input[name$=o]');
-
-=head2 E[foo*="bar"]
-
-An C element whose C attribute value contains the substring C.
-
- my $contains = $dom->find('input[name*="fo"]');
- my $contains = $dom->find('input[name*=fo]');
-
-=head2 E:root
-
-An C element, root of the document.
-
- my $root = $dom->at(':root');
-
-=head2 E:nth-child(n)
-
-An C element, the C child of its parent.
-
- my $third = $dom->find('div:nth-child(3)');
- my $odd = $dom->find('div:nth-child(odd)');
- my $even = $dom->find('div:nth-child(even)');
- my $top3 = $dom->find('div:nth-child(-n+3)');
-
-=head2 E:nth-last-child(n)
-
-An C element, the C child of its parent, counting from the last one.
-
- my $third = $dom->find('div:nth-last-child(3)');
- my $odd = $dom->find('div:nth-last-child(odd)');
- my $even = $dom->find('div:nth-last-child(even)');
- my $bottom3 = $dom->find('div:nth-last-child(-n+3)');
-
-=head2 E:nth-of-type(n)
-
-An C element, the C sibling of its type.
-
- my $third = $dom->find('div:nth-of-type(3)');
- my $odd = $dom->find('div:nth-of-type(odd)');
- my $even = $dom->find('div:nth-of-type(even)');
- my $top3 = $dom->find('div:nth-of-type(-n+3)');
-
-=head2 E:nth-last-of-type(n)
-
-An C element, the C sibling of its type, counting from the last one.
-
- my $third = $dom->find('div:nth-last-of-type(3)');
- my $odd = $dom->find('div:nth-last-of-type(odd)');
- my $even = $dom->find('div:nth-last-of-type(even)');
- my $bottom3 = $dom->find('div:nth-last-of-type(-n+3)');
-
-=head2 E:first-child
-
-An C element, first child of its parent.
-
- my $first = $dom->find('div p:first-child');
-
-=head2 E:last-child
-
-An C element, last child of its parent.
-
- my $last = $dom->find('div p:last-child');
-
-=head2 E:first-of-type
-
-An C element, first sibling of its type.
-
- my $first = $dom->find('div p:first-of-type');
-
-=head2 E:last-of-type
-
-An C element, last sibling of its type.
-
- my $last = $dom->find('div p:last-of-type');
-
-=head2 E:only-child
-
-An C element, only child of its parent.
-
- my $lonely = $dom->find('div p:only-child');
-
-=head2 E:only-of-type
-
-An C element, only sibling of its type.
-
- my $lonely = $dom->find('div p:only-of-type');
-
-=head2 E:empty
-
-An C element that has no children (including text nodes).
-
- my $empty = $dom->find(':empty');
-
-=head2 E:checked
-
-A user interface element C which is checked (for instance a radio-button or
-checkbox).
-
- my $input = $dom->find(':checked');
-
-=head2 E.warning
-
-An C element whose class is "warning".
-
- my $warning = $dom->find('div.warning');
-
-=head2 E#myid
-
-An C element with C equal to "myid".
-
- my $foo = $dom->at('div#foo');
-
-=head2 E:not(s)
-
-An C element that does not match simple selector C.
-
- my $others = $dom->find('div p:not(:first-child)');
-
-=head2 E F
-
-An C element descendant of an C element.
-
- my $headlines = $dom->find('div h1');
-
-=head2 E E F
-
-An C element child of an C element.
-
- my $headlines = $dom->find('html > body > div > h1');
-
-=head2 E + F
-
-An C element immediately preceded by an C element.
-
- my $second = $dom->find('h1 + h2');
-
-=head2 E ~ F
-
-An C element preceded by an C element.
-
- my $second = $dom->find('h1 ~ h2');
-
-=head2 E, F, G
-
-Elements of type C, C and C.
+=head1 BUGS
- my $headlines = $dom->find('h1, h2, h3');
+Report any issues on the public bugtracker.
-=head2 E[foo=bar][bar=baz]
+=head1 AUTHOR
-An C element whose attributes match all following attribute selectors.
+Dan Book
- my $links = $dom->find('a[foo^=b][foo$=ar]');
+Code and tests adapted from L, a lightweight DOM parser by the L team.
-=head1 BUGS
+=head1 CONTRIBUTORS
-Report any issues on the public bugtracker.
+=over
-=head1 AUTHOR
+=item Matt S Trout (mst)
-Dan Book
+=back
=head1 COPYRIGHT AND LICENSE
-This software is Copyright (c) 2015 by Dan Book.
+Copyright (c) 2008-2015 Sebastian Riedel.
+
+Copyright (c) 2015 L"AUTHOR"> and L"CONTRIBUTORS"> for adaptation to standalone format.
This is free software, licensed under:
@@ -1124,7 +1143,7 @@ This is free software, licensed under:
=head1 SEE ALSO
-L, L, L, L, L
+L, L, L, L, L
=for Pod::Coverage TO_JSON