Найдите элементы в дереве HTML
Считайте код 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"
""
tree — Дерево HTMLhtmlTree объектДерево HTML в виде скалярного htmlTree объект.
selector — Селектор CSSСелектор CSS в виде строкового скаляра или вектора символов. Для получения дополнительной информации см. CSS Селекторы.
subtrees — Соответствие с поддеревьями HTMLhtmlTree массивСоответствие с поддеревьями HTML, возвращенными как htmlTree массив.
Типичный элемент HTML содержит следующие компоненты:
Имя элемента – Имя HTML-тэга. Имя элемента соответствует Name свойство дерева HTML.
Атрибуты – Дополнительная информация о теге. HTML-атрибуты имеют форму , где name= "value" и name обозначьте название атрибута и значение соответственно. Атрибуты появляются во вводном HTML-тэге. Чтобы получить значения атрибута от дерева HTML, использовать valuegetAttribute.
Содержимое – содержимое Элемента. Содержимое появляется между открытием и закрытием HTML-тэгов. Содержимое может быть текстовыми данными или вложенными элементами HTML. Извлекать текст из htmlTree объект, использовать extractHTMLText. Получить вложенные элементы HTML htmlTree объект, используйте Children свойство.
Например, элемент HTML <a href="https://www.mathworks.com">Home</a> включает следующие компоненты:
| Компонент | Значение | Описание | |
|---|---|---|---|
| Имя элемента | a | Элементом является гиперссылка | |
| Атрибут | Название атрибута | href | Ссылка гиперссылки |
| Значение атрибута | "https://www.mathworks.com" | Значение ссылки гиперссылки | |
| Содержимое | Home | Текст, чтобы отобразиться | |
Селекторы 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
extractFileText | extractHTMLText | getAttribute | htmlTree | ismissing | readPDFFormData | tokenizedDocument
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.