simplexmlは<a>タグクラスをロードしませんか?

ポールM

ページからhtmlを取得してsimplexmlオブジェクトにロードするphpが少しあります。ただし、内の要素のクラスを取得していません

php

//load the html page with curl
$html = curl_exec($ch);
curl_close($ch);

$doc = new DOMDocument();
$doc->loadHTML($html);
$sxml = simplexml_import_dom($doc);

ページhtml。$ htmlのvar_dumpを実行すると、それがスクレイピングされて$ htmlに存在することが示されます。

    <li class="large">
        <a style="" id="ref_3" class="off" href="#" onmouseover="highlightme('07');return false;" onclick="req('379');return false;" title="">07</a>
    </li>

$ docと$ sxmlのvar_dump(下記)は、「off」のクラスが欠落していることを示しています。残念ながら、このクラスに基づいてページを処理する必要があります。

            [8]=>
             object(SimpleXMLElement)#50 (2) {
              ["@attributes"]=>
              array(1) {
                ["class"]=>
                string(16) "large"
              }
              ["a"]=>
              string(2) "08"
            }
アレックスアンドレイ

simplexml_load_fileおよびを使用してxpath、インラインコメントを参照してください。

あなたが求めているのは、本当に、あなたが必要な要素を見つけたら、これです

$row->a->attributes()->class=="off"

そして、以下の完全なコード:

// let's take all the divs that have the class "stff_grid"
$divs = $xml->xpath("//*[@class='stff_grid']");

// for each of these elements, let's print out the value inside the first p tag
foreach($divs as $div){
    print $div->p->a . PHP_EOL;

    // now for each li tag let's print out the contents inside the a tag
    foreach ($div->ul->li as $row){

        // same as before
        print "  - " . $row->a;
        if ($row->a->attributes()->class=="off") print " *off*";
        print PHP_EOL;

        // or shorter
        // print "  - " . $row->a . (($row->a->attributes()->class=="off")?" *off*":"") . PHP_EOL;

    }
}
/* this outputs the following
Person 1
  - 1 hr *off*
  - 2 hr
  - 3 hr *off*
  - 4 hr
  - 5 hr
  - 6 hr *off*
  - 7 hr *off*
  - 8 hr
Person 2
  - 1 hr
  - 2 hr
  - 3 hr
  - 4 hr
  - 5 hr
  - 6 hr
  - 7 hr *off*
  - 8 hr *off*
Person 3
  - 1 hr
  - 2 hr
  - 3 hr
  - 4 hr *off*
  - 5 hr
  - 6 hr
  - 7 hr *off*
  - 8 hr
*/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

simplexml_load_fileは<dc:title>タグを認識しません

分類Dev

SpriteKit unarchiveFromFileは、アセットカタログおよびアトラスからテクスチャをロードしません

分類Dev

Jquery load()はdivにスクリプトタグをロードしません

分類Dev

グーグルはクラスターアイテムにアンドロイドをマップしますクリックが機能しません

分類Dev

カスタムスタイルのScrollViewerは、ドラッグしてもスクロールしません

分類Dev

グーグルprotobufコンパイラはサービスタグのクラスを生成しませんか?

分類Dev

Pythonのreload()はクラス実装を再ロードしませんか?

分類Dev

simplexml_load_fileはXMLファイルをロードできません

分類Dev

DoctrineはクラスMappingExceptionをロードしていません

分類Dev

Pythonデータクラス `__init_subclass__`はサブクラスからフィールドをロードしません

分類Dev

Pythonデータクラス `__init_subclass__`はサブクラスからフィールドをロードしません

分類Dev

XPathはXMLReaderおよびSimpleXMLでは機能しませんか?

分類Dev

ダウンロードした更新プログラムのインストール中に、更新マネージャーがスタックしました(ただしフリーズしませんでした)。私は何をすべきか?

分類Dev

ダウンロードした更新プログラムのインストール中に、更新マネージャーがスタックしました(ただしフリーズしませんでした)。私は何をすべきか?

分類Dev

simplexml_load_fileはすべてのレコードを表示しません

分類Dev

wpfクラスライブラリからのWPFToastNotificationsはリソースをロードしません

分類Dev

ASP .NET Core3.1ログインコンストラクターはNULLを返します。ログインプロパティは、JsonApiDotNetCoreによるPOSTリクエストからバインドされていません

分類Dev

シェルスクリプトからperlプログラムにパラメータを渡してもスペースは保持されません

分類Dev

NSScrollviewはプログラムでスクロールしませんか?

分類Dev

エラー:メインクラスCountRowsを検索またはロードできませんでしたか?

分類Dev

SimpleXMLとDOMドキュメントのxmlタグはありません

分類Dev

グライドはURLから画像をロードしません

分類Dev

バックグラウンドのアプリは、チタンのアンドロイド用のpubnubからメッセージを受信しません

分類Dev

simplexml_load_string()は要素を返しません

分類Dev

Java PropertyUtils.getPropertyは、クラスにゲッターメソッドをスローしません

分類Dev

BlazorWebAssembly 5.0は、Razorクラスライブラリから静的アセットをロードしません

分類Dev

PHP5 simplexmlを追加する方法は?

分類Dev

Jenkinsマルチ構成プロジェクトはビルドステップでカスタムプラグインを表示しませんか?

分類Dev

RailsAPIコントローラーは親クラスからメソッドを継承しません

Related 関連記事

  1. 1

    simplexml_load_fileは<dc:title>タグを認識しません

  2. 2

    SpriteKit unarchiveFromFileは、アセットカタログおよびアトラスからテクスチャをロードしません

  3. 3

    Jquery load()はdivにスクリプトタグをロードしません

  4. 4

    グーグルはクラスターアイテムにアンドロイドをマップしますクリックが機能しません

  5. 5

    カスタムスタイルのScrollViewerは、ドラッグしてもスクロールしません

  6. 6

    グーグルprotobufコンパイラはサービスタグのクラスを生成しませんか?

  7. 7

    Pythonのreload()はクラス実装を再ロードしませんか?

  8. 8

    simplexml_load_fileはXMLファイルをロードできません

  9. 9

    DoctrineはクラスMappingExceptionをロードしていません

  10. 10

    Pythonデータクラス `__init_subclass__`はサブクラスからフィールドをロードしません

  11. 11

    Pythonデータクラス `__init_subclass__`はサブクラスからフィールドをロードしません

  12. 12

    XPathはXMLReaderおよびSimpleXMLでは機能しませんか?

  13. 13

    ダウンロードした更新プログラムのインストール中に、更新マネージャーがスタックしました(ただしフリーズしませんでした)。私は何をすべきか?

  14. 14

    ダウンロードした更新プログラムのインストール中に、更新マネージャーがスタックしました(ただしフリーズしませんでした)。私は何をすべきか?

  15. 15

    simplexml_load_fileはすべてのレコードを表示しません

  16. 16

    wpfクラスライブラリからのWPFToastNotificationsはリソースをロードしません

  17. 17

    ASP .NET Core3.1ログインコンストラクターはNULLを返します。ログインプロパティは、JsonApiDotNetCoreによるPOSTリクエストからバインドされていません

  18. 18

    シェルスクリプトからperlプログラムにパラメータを渡してもスペースは保持されません

  19. 19

    NSScrollviewはプログラムでスクロールしませんか?

  20. 20

    エラー:メインクラスCountRowsを検索またはロードできませんでしたか?

  21. 21

    SimpleXMLとDOMドキュメントのxmlタグはありません

  22. 22

    グライドはURLから画像をロードしません

  23. 23

    バックグラウンドのアプリは、チタンのアンドロイド用のpubnubからメッセージを受信しません

  24. 24

    simplexml_load_string()は要素を返しません

  25. 25

    Java PropertyUtils.getPropertyは、クラスにゲッターメソッドをスローしません

  26. 26

    BlazorWebAssembly 5.0は、Razorクラスライブラリから静的アセットをロードしません

  27. 27

    PHP5 simplexmlを追加する方法は?

  28. 28

    Jenkinsマルチ構成プロジェクトはビルドステップでカスタムプラグインを表示しませんか?

  29. 29

    RailsAPIコントローラーは親クラスからメソッドを継承しません

ホットタグ

アーカイブ