Функции, которые получают скомпилированные селекторы 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: Первоначальный выпуск.
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 )