簡體   English   中英

用PHP解析HTML DOM

[英]Parsing HTML DOM with PHP

我想使用PHP將以下HTML中的記錄讀入變量。 做這個的最好方式是什么? 示例HTML代表兩個記錄。

記錄1的結果:

rank = 1
    tag = LLG8V2QQ
    name = Pat
    level = 11
    league = 1
    trophies = 4154
    donations = 578
    role = Elder
  <div class="clan__rowContainer">
    <div class="clan__row">
                        #1
                </div>
    <div class="clan__row">
      <a class="ui__blueLink" href='/profile/LLG8V2QQ'>Pat</a>
    </div>
    <div class="clan__row">
      <span class="clan__playerLevel">11</span>
    </div>
    <div class="clan__row">
      <div class="clan__leagueContainer">
                        <div class="league__1"></div>
                    </div>
    </div>
    <div class="clan__row">
      <div class="clan__cup">4154</div>
    </div>
    <div class="clan__row">578</div>
    <div class="clan__row">
         Elder
                </div>
  </div>


  <div class="clan__rowContainer">
    <div class="clan__row">
                        #2
                </div>
    <div class="clan__row">
      <a class="ui__blueLink" href='/profile/299GGR2J'>Erikson</a>
    </div>
    <div class="clan__row">
      <span class="clan__playerLevel">11</span>
    </div>
    <div class="clan__row">
      <div class="clan__leagueContainer">
                        <div class="league__1"></div>
                    </div>
    </div>
    <div class="clan__row">
      <div class="clan__cup">4081</div>
    </div>
    <div class="clan__row">248</div>
    <div class="clan__row">
         Member
                </div>
  </div>

您可以嘗試使用PHP的DOMDocument類。 這是文檔鏈接 您可以從以下示例開始:

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
//or $doc->loadHTML("<html><body>Test<br></body></html>");

然后遍歷文檔節點及其子節點:

foreach ($doc->childNodes as $item) {
    //... some code
}

到目前為止,我的代碼:

    <?php 
        $_document = implode('', file('http://myURL')); 

        $dom = new DomDocument; 
        $dom->loadHTML($_document); 
        $dom->preserveWhiteSpace = false; 
        $divs = $dom->getElementsByTagName('div'); 
        foreach ($divs as $div) {
            $class = $div->getAttribute('class');
            if ($class == 'clan__rowContainer') {
                NO IDEA WHAT NOW
            }
        }
    ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM