ホームページ バックエンド開発 PHPチュートリアル PHP を使用して、特定の要素クラスに基づいて HTML ドキュメントからテキスト データを抽出して分類するにはどうすればよいですか?

PHP を使用して、特定の要素クラスに基づいて HTML ドキュメントからテキスト データを抽出して分類するにはどうすればよいですか?

Nov 12, 2024 pm 03:48 PM

How can I extract and categorize text data from an HTML document based on specific element classes using PHP?

指定されたクラスを持つ要素から包括的な配列としてテキストを取得する

このクエリでの当面のタスクは、テキスト データを抽出して分類することです。特定の要素クラスに基づいた HTML ドキュメントから。 HTML ドキュメントには、「Heading1-P」や「Normal-P」などのクラスを持つさまざまな段落が含まれており、それぞれに対応する見出しとコンテンツが含まれています。

これを実現するには、PHP DOM Document と XPath を利用できます。このプロセスには、HTML ドキュメントの解析と、XPath を使用したその要素の走査が含まれます。 XPath オブジェクトとクラス名を入力として受け取るカスタム関数 parseToArray() を定義します。この関数は、クラスに一致する要素を反復処理し、そのテキスト コンテンツを配列に抽出します。

詳細な解決策は次のとおりです。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

$test = <<< HTML

<p class="Heading1-P">

    <span class="Heading1-H">Chapter 1</span>

</p>

<p class="Normal-P">

    <span class="Normal-H">This is chapter 1</span>

</p>

<p class="Heading1-P">

    <span class="Heading1-H">Chapter 2</span>

</p>

<p class="Normal-P">

    <span class="Normal-H">This is chapter 2</span>

</p>

<p class="Heading1-P">

    <span class="Heading1-H">Chapter 3</span>

</p>

<p class="Normal-P">

    <span class="Normal-H">This is chapter 3</span>

</p>

HTML;

 

$dom = new DOMDocument();

$dom->loadHTML($test);

$xpath = new DOMXPath($dom);

$heading = parseToArray($xpath, 'Heading1-H');

$content = parseToArray($xpath, 'Normal-H');

 

var_dump($heading);

echo "<br/>";

var_dump($content);

echo "<br/>";

 

function parseToArray(DOMXPath $xpath, string $class): array

{

    $xpathquery = "//[@class='$class']";

    $elements = $xpath->query($xpathquery);

 

    $resultarray = [];

    foreach ($elements as $element) {

        $nodes = $element->childNodes;

        foreach ($nodes as $node) {

            $resultarray[] = $node->nodeValue;

        }

    }

 

    return $resultarray;

}

ログイン後にコピー

関数 parseToArray() は、特定のクラスに基づいて要素を識別します。名前を付け、そのテキスト内容を配列に抽出します。続いて、$Heading と $content という 2 つの配列が作成され、それぞれ章のタイトルと対応する段落テキストが含まれます。コードの出力は次のようになります。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

array(3) {

  [0] =>

  string(8) "Chapter 1"

  [1] =>

  string(8) "Chapter 2"

  [2] =>

  string(8) "Chapter 3"

}

array(3) {

  [0] =>

  string(16) "This is chapter 1"

  [1] =>

  string(16) "This is chapter 2"

  [2] =>

  string(16) "This is chapter 3"

}

ログイン後にコピー

このアプローチを採用すると、HTML ドキュメントから特定のクラス名に基づいてテキスト コンテンツを効率的に取得して分離できるため、柔軟で的を絞ったデータ処理が可能になります。

以上がPHP を使用して、特定の要素クラスに基づいて HTML ドキュメントからテキスト データを抽出して分類するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

すべてのPHP開発者が持つべき6追加スキル すべてのPHP開発者が持つべき6追加スキル Feb 28, 2025 am 10:52 AM

すべてのPHP開発者が持つべき6追加スキル

PHPの配列を理解します PHPの配列を理解します Feb 28, 2025 am 10:53 AM

PHPの配列を理解します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

See all articles