1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/GoLangLibs-goquery

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Функции, которые получают скомпилированные селекторы Cascadia вместо строк селекторов, позволяют избежать потенциальных паник, вызываемых goquery через вызовы cascadia.MustCompile. Это приводит к повышению производительности (селекторы можно скомпилировать один раз и использовать повторно) и более идиоматичной обработке ошибок (вы можете обрабатывать ошибки компиляции Cascadia, вместо того чтобы восстанавливаться после паники, что долгое время меня беспокоило). Обратите внимание, что ожидаемый тип — это интерфейс Matcher, который реализует cascadia.Selector. Можно использовать другие реализации сопоставителя.

  • 2014-11-06: Измените пути импорта net/html на golang.org/x/net/html (см. https://groups.google.com/forum/#!topic/golang-nuts/eD8dh3T9yyA). Обязательно обновите свой код, чтобы использовать новый путь импорта, когда вы вызываете goquery с помощью html.Node.

  • v0.3.2: Добавьте NewDocumentFromReader() (спасибо jweir), который позволяет создать документ goquery из io.Reader.

  • v0.3.1: Добавьте NewDocumentFromResponse() (спасибо assassingj), который позволяет создавать документ goquery из ответа HTTP.

  • v0.3.0: Добавьте EachWithBreak(), который позволяет выйти из цикла Each(), возвращая false. Эта функция была добавлена вместо изменения существующего Each(), чтобы избежать нарушения совместимости.

  • v0.2.1: Сделайте доступным для получения через go, теперь, когда [go.net/html совместим с Go1.0][gonet] (спасибо @matrixik за то, что указал на это).

  • v0.2.0: Добавьте поддержку отрицательных индексов в Slice(). ИЗМЕНЕНИЕ: Document.Root удалён, Document теперь сам является Selection (выбор одного элемента, корневого элемента, как и Document.Root раньше). Добавьте метод jQuery Closest().

  • v0.1.1: Добавьте тесты для использования в качестве основы для рефакторинга, реорганизуйте методы Next...() и Prev...(), чтобы использовать новые функции связанного списка пакета html (Next/PrevSibling, FirstChild). Хороший прирост производительности (в некоторых случаях 40+%).

  • v0.1.0: Первоначальный выпуск.

API

goquery предоставляет два типа структур: Document и Selection, а также интерфейс Matcher. В отличие от jQuery, который загружается как часть документа DOM и, таким образом, действует на содержащийся в нём документ, goquery не знает, над каким HTML-документом нужно действовать. Поэтому ему нужно сказать, и для этого предназначен тип Document. Он содержит корневой узел документа в качестве начального значения Selection для манипулирования.

jQuery часто имеет множество вариантов одной и той же функции (без аргументов, строка селектора, объект jQuery, элемент DOM и т. д.). Вместо того чтобы предоставлять те же функции в goquery в виде единого метода с вариативными аргументами пустого интерфейса, используются статически типизированные сигнатуры, следуя этому соглашению об именах:

  • Когда эквивалент jQuery можно вызвать без аргумента, он имеет то же имя, что и jQuery для сигнатуры без аргументов (например: Prev()), а версия со строкой селектора называется XxxFiltered() (например: PrevFiltered()).

  • Когда эквиваленту jQuery требуется один аргумент, одно и то же имя используется для версии со строкой селектора (например: Is()).

  • Подписи, принимающие объект jQuery в качестве аргумента, определены в goquery как XxxSelection() и принимают объект *Selection в качестве аргумента (например: FilterSelection()).

  • Подписи, принимающие элемент DOM в качестве аргумента в jQuery, определены в goquery как XxxNodes() и принимают переменное количество аргументов типа *html.Node (например: FilterNodes()).

  • Подписи, принимающие функцию в качестве аргумента в jQuery, определены в goquery как XxxFunction() и принимают функцию в качестве аргумента (например: FilterFunction()).

  • Методы goquery, которые можно вызывать со строкой селектора, имеют соответствующую версию, которая принимает интерфейс Matcher и определяется как XxxMatcher() (например: IsMatcher()).

Вспомогательные функции, которых нет в jQuery, но которые полезны в Go, реализованы как функции (которые принимают *Selection в качестве параметра), чтобы избежать потенциального конфликта имён методов *Selection (зарезервированных для поведения, эквивалентного jQuery).

Полную документацию по godoc можно найти здесь [doc].

Обратите внимание, что селекторы Cascadia не...

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/GoLangLibs-goquery.git
git@api.gitlife.ru:oschina-mirror/GoLangLibs-goquery.git
oschina-mirror
GoLangLibs-goquery
GoLangLibs-goquery
master