X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=README.pod;h=fc667fef37d1467389989b3f7b883c376c771166;hb=c0f0ce8910e956686984bd11508cf7df8bd2dcd3;hp=2bf0aa84e609eaea917aa784e837b9a4f900e070;hpb=3187745294af04bb4f3ece751c5d947f373039e5;p=catagits%2FDOM-Tiny.git diff --git a/README.pod b/README.pod index 2bf0aa8..fc667fe 100644 --- a/README.pod +++ b/README.pod @@ -77,8 +77,8 @@ names are lowercased and selectors need to be lowercase as well. my $dom = DOM::Tiny->new('

Hi!

'); say $dom->at('p[id]')->text; -If XML processing instructions are found, the parser will automatically switch -into XML mode and everything becomes case-sensitive. +If an XML declaration is found, the parser will automatically switch into XML +mode and everything becomes case-sensitive. # XML semantics my $dom = DOM::Tiny->new('

Hi!

'); @@ -99,32 +99,34 @@ XML detection can also be disabled with the L method. L uses a CSS selector engine based on L. All CSS selectors that make sense for a standalone parser are supported. -=head2 * +=over + +=item Z<>* Any element. my $all = $dom->find('*'); -=head2 E +=item E An element of type C. my $title = $dom->at('title'); -=head2 E[foo] +=item E[foo] An C element with a C attribute. my $links = $dom->find('a[href]'); -=head2 E[foo="bar"] +=item 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] +=item 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 @@ -138,7 +140,7 @@ This selector is part of L, which is still a work in progress. -=head2 E[foo~="bar"] +=item 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. @@ -146,7 +148,7 @@ 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"] +=item E[foo^="bar"] An C element whose C attribute value begins exactly with the string C. @@ -154,7 +156,7 @@ C. my $begins_with = $dom->find('input[name^="f"]'); my $begins_with = $dom->find('input[name^=f]'); -=head2 E[foo$="bar"] +=item E[foo$="bar"] An C element whose C attribute value ends exactly with the string C. @@ -162,20 +164,20 @@ C. my $ends_with = $dom->find('input[name$="o"]'); my $ends_with = $dom->find('input[name$=o]'); -=head2 E[foo*="bar"] +=item 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 +=item E:root An C element, root of the document. my $root = $dom->at(':root'); -=head2 E:nth-child(n) +=item E:nth-child(n) An C element, the C child of its parent. @@ -184,7 +186,7 @@ An C element, the C child of its parent. my $even = $dom->find('div:nth-child(even)'); my $top3 = $dom->find('div:nth-child(-n+3)'); -=head2 E:nth-last-child(n) +=item E:nth-last-child(n) An C element, the C child of its parent, counting from the last one. @@ -193,7 +195,7 @@ An C element, the C child of its parent, counting from the last one. 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) +=item E:nth-of-type(n) An C element, the C sibling of its type. @@ -202,7 +204,7 @@ An C element, the C sibling of its type. 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) +=item E:nth-last-of-type(n) An C element, the C sibling of its type, counting from the last one. @@ -211,109 +213,111 @@ An C element, the C sibling of its type, counting from the last one. 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 +=item E:first-child An C element, first child of its parent. my $first = $dom->find('div p:first-child'); -=head2 E:last-child +=item E:last-child An C element, last child of its parent. my $last = $dom->find('div p:last-child'); -=head2 E:first-of-type +=item 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 +=item 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 +=item E:only-child An C element, only child of its parent. my $lonely = $dom->find('div p:only-child'); -=head2 E:only-of-type +=item E:only-of-type An C element, only sibling of its type. my $lonely = $dom->find('div p:only-of-type'); -=head2 E:empty +=item E:empty An C element that has no children (including text nodes). my $empty = $dom->find(':empty'); -=head2 E:checked +=item 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 +=item E.warning An C element whose class is "warning". my $warning = $dom->find('div.warning'); -=head2 E#myid +=item E#myid An C element with C equal to "myid". my $foo = $dom->at('div#foo'); -=head2 E:not(s) +=item 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 +=item E F An C element descendant of an C element. my $headlines = $dom->find('div h1'); -=head2 E E F +=item E E F An C element child of an C element. my $headlines = $dom->find('html > body > div > h1'); -=head2 E + F +=item E + F An C element immediately preceded by an C element. my $second = $dom->find('h1 + h2'); -=head2 E ~ F +=item E ~ F An C element preceded by an C element. my $second = $dom->find('h1 ~ h2'); -=head2 E, F, G +=item E, F, G Elements of type C, C and C. my $headlines = $dom->find('h1, h2, h3'); -=head2 E[foo=bar][bar=baz] +=item E[foo=bar][bar=baz] An C element whose attributes match all following attribute selectors. my $links = $dom->find('a[foo^=b][foo$=ar]'); +=back + =head1 OPERATORS L overloads the following operators. @@ -390,7 +394,7 @@ objects. All selectors listed in L are supported. $dom = $dom->append('

I ♥ DOM::Tiny!

'); -Append HTML/XML fragment to this node. +Append HTML/XML fragment to this node (for all node types other than C). # "

Test

123

" $dom->parse('

Test

') @@ -423,8 +427,8 @@ node's content. my $result = $dom->at('div ~ p'); Find first descendant element of this element matching the CSS selector and -return it as a L object or return C if none could be found. -All selectors listed in L are supported. +return it as a L object, or C if none could be found. All +selectors listed in L are supported. # Find first element with "svg" namespace definition my $namespace = $dom->at('[xmlns\:svg]')->{'xmlns:svg'}; @@ -580,7 +584,7 @@ L are supported. my $namespace = $dom->namespace; -Find this element's namespace or return C if none could be found. +Find this element's namespace, or return C if none could be found. # Find namespace for an element with namespace prefix my $namespace = $dom->at('svg > svg\:circle')->namespace; @@ -592,8 +596,8 @@ Find this element's namespace or return C if none could be found. my $sibling = $dom->next; -Return L object for next sibling element or C if there are no -more siblings. +Return L object for next sibling element, or C if there are +no more siblings. # "

123

" $dom->parse('

Test

123

')->at('h1')->next; @@ -602,7 +606,7 @@ more siblings. my $sibling = $dom->next_node; -Return L object for next sibling node or C if there are no +Return L object for next sibling node, or C if there are no more siblings. # "456" @@ -617,8 +621,11 @@ more siblings. my $parent = $dom->parent; -Return L object for parent of this node or C if this node has -no parent. +Return L object for parent of this node, or C if this node +has no parent. + + # "Test" + $dom->parse('

Test

')->at('i')->parent; =head2 parse @@ -627,7 +634,7 @@ no parent. Parse HTML/XML fragment. # Parse XML - my $dom = DOM::Tiny->new->xml(1)->parse($xml); + my $dom = DOM::Tiny->new->xml(1)->parse('I ♥ DOM::Tiny!'); =head2 preceding @@ -655,7 +662,7 @@ before this node as L objects. $dom = $dom->prepend('

I ♥ DOM::Tiny!

'); -Prepend HTML/XML fragment to this node. +Prepend HTML/XML fragment to this node (for all node types other than C). # "

Test

123

" $dom->parse('

123

') @@ -687,7 +694,7 @@ node's content. my $sibling = $dom->previous; -Return L object for previous sibling element or C if there +Return L object for previous sibling element, or C if there are no more siblings. # "

Test

" @@ -697,7 +704,7 @@ are no more siblings. my $sibling = $dom->previous_node; -Return L object for previous sibling node or C if there are +Return L object for previous sibling node, or C if there are no more siblings. # "123" @@ -833,13 +840,13 @@ C, C or C. my $value = $dom->val; Extract value from form element (such as C