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 class="mwa-nav_login" href="https://www.mathworks.com/login?uri=http://www.mathworks.com/help/textanalytics/index.html">Sign In</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/store?s_cid=store_top_nav&amp;s_tid=gn_store">How to Buy</A>

Извлеките текст из поддеревьев с помощью 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