JSoup - удалить теги с определенным словом в них (и все внутри тегов) - PullRequest
0 голосов
/ 10 мая 2019

У меня есть веб-страница с html-тегами вида

<section class="feature-authorized-retailer pdp-outofstock-js hide">
    <div class="retailer-notification">
        <span>This product is out of stock</span>
    </div>

            <section id="marketing-product-actions" class="product-content-form-marketing-product-actions product-actions">
                <div class="product-content-form-product-actions-primary product-actions-primary">
                    <a class="product-content-form-out-of-stock button secondary">Out of Stock</a>
                </div>
            </section>

</section>

Как видно из внешнего тега "section", в названии класса есть слово "hide".Есть ли способ идентифицировать теги, подобные этим, со словом «скрыть» в имени класса с помощью JSoup, чтобы я мог удалить их и все html внутри этих тегов?

1 Ответ

1 голос
/ 10 мая 2019

Для выбора элементов с помощью Jsoup вы можете использовать большинство CSS-селекторов .

  1. Выбрать все элементы с классом hide:
document.select(".hide")

Элемент может содержать много классов, но он будет совпадать, если один из них равен hide.

Это будет соответствовать class="abc hide abc", но не будет соответствовать class="abc abchideabc abc".

  1. Выбрать все элементы, в которых значение атрибута class содержит строку hide;
document.select("[class~=hide]")

Этот будет соответствовать class="abc hide abc", но также будет соответствовать class="abc abchideabc abc"

Для удаления выбранных элементов используйте document.select(...).remove()

...