findElement

Найдите элементы в дереве HTML

Синтаксис

subtrees = findElement(tree,selector)

Описание

пример

subtrees = findElement(tree,selector) возвращает элементы в tree, совпадающем с селектором CSS.

Примеры

свернуть все

Считайте код HTML из https://www.mathworks.com/help/textanalytics URL с помощью функции webread.

url = "https://www.mathworks.com/help/textanalytics";
code = webread(url);

Проанализируйте код HTML с помощью htmlTree.

tree = htmlTree(code);

Найдите все гиперссылки в дереве HTML использованием findElement. Гиперссылки являются узлами с именем элемента "A".

selector = "A";
subtrees = findElement(tree,selector);

Просмотрите первые несколько поддеревьев.

subtrees(1:10)
ans = 
  10×1 htmlTree:

   (1,1)  <A class="svg_link navbar-brand" href="https://www.mathworks.com?s_ti…
   (2,1)  <A class="mwa-nav_login" href="https://www.mathworks.com/login?uri=ht…
   (3,1)  <A href="https://www.mathworks.com/products.html?s_tid=gn_ps">Product…
   (4,1)  <A href="https://www.mathworks.com/solutions.html?s_tid=gn_sol">Solut…
   (5,1)  <A href="https://www.mathworks.com/academia.html?s_tid=gn_acad">Acade…
   (6,1)  <A href="https://www.mathworks.com/support.html?s_tid=gn_supp">Suppor…
   (7,1)  <A href="https://www.mathworks.com/matlabcentral/?s_tid=gn_mlc">Commu…
   (8,1)  <A href="https://www.mathworks.com/company/events.html?s_tid=gn_ev">E…
   (9,1)  <A href="https://www.mathworks.com/company/aboutus/contact_us.html?s_…
  (10,1)  <A href="https://www.mathworks.com/store?s_cid=store_top_nav&amp;s_ti…

Извлеките текст от поддеревьев с помощью extractHTMLText. Результат содержит текст ссылки от каждой ссылки на странице.

str = extractHTMLText(subtrees);
str(1:10)
ans = 10×1 string array
    ""
    "Sign In"
    "Products"
    "Solutions"
    "Academia"
    "Support"
    "Community"
    "Events"
    "Contact Us"
    "How to Buy"

Входные параметры

свернуть все

Дерево HTML, заданное как скалярный объект htmlTree.

Селектор CSS, заданный как скаляр строки или вектор символов. Для получения дополнительной информации см. CSS Селекторы.

Выходные аргументы

свернуть все

Соответствие с поддеревьями HTML, возвращенными как массив htmlTree.

Больше о

свернуть все

Элементы HTML

Типичный элемент HTML содержит следующие компоненты:

  • Имя элемента – Имя HTML-тэга. Имя элемента соответствует свойству Name дерева HTML.

  • Атрибуты – Дополнительная информация о теге. HTML-атрибуты имеют форму name="value", где name и value обозначают название атрибута и значение соответственно. Атрибуты появляются во вводном HTML-тэге. Чтобы получить значения атрибута от дерева HTML, используйте getAttribute.

  • Содержимое – содержимое Элемента. Содержимое появляется между открытием и закрытием HTML-тэгов. Содержимое может быть текстовыми данными или вложенными элементами HTML. Чтобы извлечь текст от объекта htmlTree, используйте extractHTMLText. Чтобы получить вложенные элементы HTML объекта htmlTree, используйте свойство Children.

Например, элемент HTML <a href="https://www.mathworks.com">Home</a> включает следующие компоненты:

КомпонентЗначениеОписание
Имя элементаaЭлемент является гиперссылкой
АтрибутНазвание атрибутаhrefСсылка гиперссылки
Значение атрибута"https://www.mathworks.com"Значение ссылки гиперссылки
СодержимоеHomeТекст, чтобы отобразиться

CSS селекторы

Селекторы CSS задают шаблоны, чтобы совпадать с элементами в дереве.

Эта таблица показывает некоторые примеры, показывающие, как извлечь различные элементы HTML от дерева HTML:

ЗадачаCSS селекторПример
Найдите весь абзац (<p>) элементы."p"findElement(tree,"p")
Найдите весь абзац (<p>) и перечислите элемент (<li>) элементы."p,li"findElement(tree,"p,li")
Найдите весь абзац (<p>) элементы, которые являются внутренней таблицей (<table>) элементы."table p"findElement(tree,"table p")
Найдите всю гиперссылку (<a>) элементы с атрибутом ссылки гиперссылки (href) значения, заканчивающиеся ".pdf"."a[href$="".pdf""]"findElement(tree,"a[href$="".pdf""]")
Найдите весь абзац (<p>) элементы, которые являются первым дочерним элементом их родительского элемента."p:first-child"findElement(tr,"p:first-child")
Найдите весь абзац (<p>) элементы, которые являются первым элементом абзаца их родительского элемента."p:first-of-type"findElement(tr,"p:first-of-type")
Найдите весь акцент (<em>) элементы, где родительский элемент является абзацем (<p>) элемент."p > em"findElement(tr,"p > em")
Найдите весь абзац (<p>) элементы, появляющиеся сразу после заголовка 1 (<h1>) элемент"h1 + p"findElement(tr,"h1 + p")
Найдите все пустые элементы.":empty"findElement(tr,":empty")
Найдите, что все непустые маркируют (<label>) элементы."label:not(:empty)"findElement(tr,"label:not(:empty)")

Функция findElement поддерживает весь уровень 3 CSS, за исключением селекторов ":lang", ":checked", ":link", ":active", ":hover", ":focus", ":target", ":enabled" и ":disabled".

Для получения дополнительной информации о селекторах CSS, см. [1].

Ссылки

[1] Ссылка селектора CSS. https://www.w3schools.com/cssref/css_selectors.asp

Введенный в R2018b