Main Content

findElement

HTML 트리에서 요소 찾기

설명

예제

subtrees = findElement(tree,selector)tree에서 CSS 선택자와 일치하는 요소를 반환합니다.

예제

모두 축소

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 객체로 지정됩니다.

CSS 선택자로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 자세한 내용은 CSS 선택자 항목을 참조하십시오.

출력 인수

모두 축소

일치하는 HTML 하위 트리로, htmlTree 배열로 반환됩니다.

세부 정보

모두 축소

HTML 요소

일반적인 HTML 요소에는 다음과 같은 성분이 들어 있습니다.

  • 요소 이름 – HTML 태그의 이름. 요소 이름은 HTML 트리의 Name 속성에 해당합니다.

  • 특성 – 태그에 대한 추가 정보. HTML 특성은 name="value" 형식입니다. 여기서 namevalue는 각각 특성 이름과 특성 값을 나타냅니다. 특성은 여는 HTML 태그 안에 있습니다. HTML 트리에서 특성 값을 가져오려면 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 선택자

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] 항목을 참조하십시오.

참고 문헌

버전 내역

R2018b에 개발됨