Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
4.6 KiB
123 lines
4.6 KiB
// Copyright (c) 2012-2016, Martin Angers & Contributors |
|
// All rights reserved. |
|
// |
|
// Redistribution and use in source and binary forms, with or without modification, |
|
// are permitted provided that the following conditions are met: |
|
// |
|
// * Redistributions of source code must retain the above copyright notice, |
|
// this list of conditions and the following disclaimer. |
|
// * Redistributions in binary form must reproduce the above copyright notice, |
|
// this list of conditions and the following disclaimer in the documentation and/or |
|
// other materials provided with the distribution. |
|
// * Neither the name of the author nor the names of its contributors may be used to |
|
// endorse or promote products derived from this software without specific prior written permission. |
|
// |
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS |
|
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY |
|
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR |
|
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY |
|
// WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
|
|
/* |
|
Package goquery implements features similar to jQuery, including the chainable |
|
syntax, to manipulate and query an HTML document. |
|
|
|
It brings a syntax and a set of features similar to jQuery to the Go language. |
|
It is based on Go's net/html package and the CSS Selector library cascadia. |
|
Since the net/html parser returns nodes, and not a full-featured DOM |
|
tree, jQuery's stateful manipulation functions (like height(), css(), detach()) |
|
have been left off. |
|
|
|
Also, because the net/html parser requires UTF-8 encoding, so does goquery: it is |
|
the caller's responsibility to ensure that the source document provides UTF-8 encoded HTML. |
|
See the repository's wiki for various options on how to do this. |
|
|
|
Syntax-wise, it is as close as possible to jQuery, with the same method names when |
|
possible, and that warm and fuzzy chainable interface. jQuery being the |
|
ultra-popular library that it is, writing a similar HTML-manipulating |
|
library was better to follow its API than to start anew (in the same spirit as |
|
Go's fmt package), even though some of its methods are less than intuitive (looking |
|
at you, index()...). |
|
|
|
It is hosted on GitHub, along with additional documentation in the README.md |
|
file: https://github.com/puerkitobio/goquery |
|
|
|
Please note that because of the net/html dependency, goquery requires Go1.1+. |
|
|
|
The various methods are split into files based on the category of behavior. |
|
The three dots (...) indicate that various "overloads" are available. |
|
|
|
* array.go : array-like positional manipulation of the selection. |
|
- Eq() |
|
- First() |
|
- Get() |
|
- Index...() |
|
- Last() |
|
- Slice() |
|
|
|
* expand.go : methods that expand or augment the selection's set. |
|
- Add...() |
|
- AndSelf() |
|
- Union(), which is an alias for AddSelection() |
|
|
|
* filter.go : filtering methods, that reduce the selection's set. |
|
- End() |
|
- Filter...() |
|
- Has...() |
|
- Intersection(), which is an alias of FilterSelection() |
|
- Not...() |
|
|
|
* iteration.go : methods to loop over the selection's nodes. |
|
- Each() |
|
- EachWithBreak() |
|
- Map() |
|
|
|
* manipulation.go : methods for modifying the document |
|
- After...() |
|
- Append...() |
|
- Before...() |
|
- Clone() |
|
- Empty() |
|
- Prepend...() |
|
- Remove...() |
|
- ReplaceWith...() |
|
- Unwrap() |
|
- Wrap...() |
|
- WrapAll...() |
|
- WrapInner...() |
|
|
|
* property.go : methods that inspect and get the node's properties values. |
|
- Attr*(), RemoveAttr(), SetAttr() |
|
- AddClass(), HasClass(), RemoveClass(), ToggleClass() |
|
- Html() |
|
- Length() |
|
- Size(), which is an alias for Length() |
|
- Text() |
|
|
|
* query.go : methods that query, or reflect, a node's identity. |
|
- Contains() |
|
- Is...() |
|
|
|
* traversal.go : methods to traverse the HTML document tree. |
|
- Children...() |
|
- Contents() |
|
- Find...() |
|
- Next...() |
|
- Parent[s]...() |
|
- Prev...() |
|
- Siblings...() |
|
|
|
* type.go : definition of the types exposed by goquery. |
|
- Document |
|
- Selection |
|
- Matcher |
|
|
|
* utilities.go : definition of helper functions (and not methods on a *Selection) |
|
that are not part of jQuery, but are useful to goquery. |
|
- NodeName |
|
- OuterHtml |
|
*/ |
|
package goquery
|
|
|