findElement
HTML 트리에서 요소 찾기
설명
예제
webread
함수를 사용하여 URL https://www.mathworks.com/help/textanalytics
에서 HTML 코드를 읽어옵니다.
url = "https://www.mathworks.com/help/textanalytics";
code = webread(url);
htmlTree
를 사용하여 HTML 코드를 구문 분석합니다.
tree = htmlTree(code);
findElement
를 사용하여 HTML 트리에서 하이퍼링크를 모두 찾습니다. 하이퍼링크는 요소 이름이 "A"
인 노드입니다.
selector = "A";
subtrees = findElement(tree,selector);
처음 몇 개의 하위 트리를 표시합니다.
subtrees(1:10)
ans = 10×1 htmlTree: <A class="skip_link sr-only" href="#content_container">Skip to content</A> <A href="https://www.mathworks.com?s_tid=gn_logo" class="svg_link navbar-brand"><IMG src="/images/responsive/global/pic-header-mathworks-logo.svg" class="mw_logo" alt="MathWorks"/></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/products/get-matlab.html?s_tid=gn_getml">Get MATLAB</A> <A href="https://www.mathworks.com?s_tid=gn_logo" class="svg_link pull-left"><IMG src="/images/responsive/global/pic-header-mathworks-logo.svg" class="mw_logo" alt="MathWorks"/></A>
extractHTMLText
를 사용하여 하위 트리에서 텍스트를 추출합니다. 추출한 결과에 해당 페이지에 있는 각 링크의 링크 텍스트가 들어 있습니다.
str = extractHTMLText(subtrees); str(1:10)
ans = 10×1 string
"Skip to content"
""
"Products"
"Solutions"
"Academia"
"Support"
"Community"
"Events"
"Get MATLAB"
""
입력 인수
출력 인수
일치하는 HTML 하위 트리로, htmlTree
배열로 반환됩니다.
세부 정보
일반적인 HTML 요소에는 다음과 같은 성분이 들어 있습니다.
요소 이름 – HTML 태그의 이름. 요소 이름은 HTML 트리의
Name
속성에 해당합니다.특성 – 태그에 대한 추가 정보. HTML 특성은
형식입니다. 여기서name
="value
"
과name
는 각각 특성 이름과 특성 값을 나타냅니다. 특성은 여는 HTML 태그 안에 있습니다. HTML 트리에서 특성 값을 가져오려면value
getAttribute
를 사용하십시오.내용 – 요소 내용. 내용은 여는 HTML 태그와 닫는 HTML 태그 사이에 있습니다. 내용은 텍스트 데이터이거나 중첩된 HTML 요소일 수 있습니다.
htmlTree
객체에서 텍스트를 추출하려면extractHTMLText
를 사용하십시오.htmlTree
객체의 중첩된 HTML 요소를 가져오려면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") |
테이블(<table> ) 요소 내에 있는 모든 단락(<p> ) 요소를 찾습니다. | "table p" | findElement(tree,"table p") |
".pdf" 로 끝나는 하이퍼링크 참조 특성(<a> ) 값을 갖는 모든 하이퍼링크(href ) 요소를 찾습니다. | "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") |
부모가 단락(<p> ) 요소인 모든 강조(<em> ) 요소를 찾습니다. | "p > em" | findElement(tr,"p > em") |
소제목 1(<h1> ) 요소 바로 다음에 나오는 모든 단락(<p> ) 요소를 찾습니다. | "h1 + p" | findElement(tr,"h1 + p") |
모든 빈 요소를 찾습니다. | ":empty" | findElement(tr,":empty") |
비어 있지 않은 모든 레이블(<label> ) 요소를 찾습니다. | "label:not(:empty)" | findElement(tr,"label:not(:empty)") |
findElement
함수는 선택자 ":lang"
, ":checked"
, ":link"
, ":active"
, ":hover"
, ":focus"
, ":target"
, ":enabled"
, ":disabled"
를 제외하고 모든 CSS 수준 3을 지원합니다.
CSS 선택자에 대한 자세한 내용은 [1] 항목을 참조하십시오.
참고 문헌
[1] CSS Selector Reference. https://www.w3schools.com/cssref/css_selectors.php
버전 내역
R2018b에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)