findElement

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

Описание

пример

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:

    <A class="svg_link navbar-brand" href="https://www.mathworks.com?s_tid=gn_logo"><IMG alt="MathWorks" class="mw_logo" src="/images/responsive/global/pic-header-mathworks-logo.svg"/></A>
    <A href="https://www.mathworks.com/products.html?s_tid=gn_ps">Products</A>
    <A href="https://www.mathworks.com/solutions.html?s_tid=gn_sol">Solutions</A>
    <A href="https://www.mathworks.com/academia.html?s_tid=gn_acad">Academia</A>
    <A href="https://www.mathworks.com/support.html?s_tid=gn_supp">Support</A>
    <A href="https://www.mathworks.com/matlabcentral/?s_tid=gn_mlc">Community</A>
    <A href="https://www.mathworks.com/company/events.html?s_tid=gn_ev">Events</A>
    <A href="https://www.mathworks.com/company/aboutus/contact_us.html?s_tid=gn_cntus">Contact Us</A>
    <A href="https://www.mathworks.com/products/get-matlab.html?s_tid=gn_getml">Get MATLAB</A>
    <A class="svg_link pull-left" href="https://www.mathworks.com?s_tid=gn_logo"><IMG alt="MathWorks" class="mw_logo" src="/images/responsive/global/pic-header-mathworks-logo.svg"/></A>

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

str = extractHTMLText(subtrees);
str(1:10)
ans = 10×1 string
    ""
    "Products"
    "Solutions"
    "Academia"
    "Support"
    "Community"
    "Events"
    "Contact Us"
    "Get MATLAB"
    ""

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

свернуть все

Дерево 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