findElement
HTML ツリー内の要素の検出
説明
例
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"
""
入力引数
出力引数
subtrees
— 一致する HTML サブツリー
htmlTree
配列
一致する HTML サブツリー。htmlTree
配列として返されます。
詳細
HTML 要素
一般的な HTML 要素には、次のコンポーネントが含まれます。
要素名 – HTML タグの名前。要素名は、HTML ツリーの
Name
プロパティに対応します。属性 – タグに関する追加情報。HTML 属性の形式は
で、name
="value
"
とname
はそれぞれ属性名と値を示します。属性は HTML の開始タグの内部に出現します。HTML ツリーから属性値を取得するには、value
getAttribute
を使用します。コンテンツ – 要素のコンテンツ。コンテンツは 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" で終わるハイパーリンク参照属性 (href ) 値をもつすべてのハイパーリンク (<a> ) 要素を見つける。 | "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 コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)