2012-10-09 31 views

回答

1

您可以使用XPath:

Getting DOM elements by classname

Get Element ByTag Name

Using PHP to get DOM Element

這裏有很多#2帖子。在這裏使用搜索。

編輯:

<?php 

$dom = new DOMDocument(); 
$dom->loadHTML('<div class="table"> 
     <dl class="list"> 
      <dt>ID:</dt> 
      <dd>632991</dd> 
      <dt>Type:</dt> 
      <dd>NEW</dd> 
      <dt>Body Type:</dt> 
      <dd>Compact</dd> 
     </dl> 
    </div>'); 

$nodes = $dom->getElementsByTagName('dl'); 
foreach ($nodes as $node) { 
    var_dump(getArray($node)); 
} 

function getArray($node) { 
    $array = false; 

    if ($node->hasAttributes()) { 
     foreach ($node->attributes as $attr) { 
      $array[$attr->nodeName] = $attr->nodeValue; 
     } 
    } 

    if ($node->hasChildNodes()) { 
     if ($node->childNodes->length == 1) { 
      $array[$node->firstChild->nodeName] = $node->firstChild->nodeValue; 
     } else { 
      foreach ($node->childNodes as $childNode) { 
       if ($childNode->nodeType != XML_TEXT_NODE) { 
        $array[$childNode->nodeName][] = getArray($childNode); 
       } 
      } 
     } 
    } 
    return $array; 
} 
?> 

功能是的getArray從php.net

+0

這些鏈接是有點過於籠統和RTFM,他們沒有涉及到''

例子。 – mario

+0

最後一個鏈接是一個完整的例子。是的,它是一個簡短的暗示。當你想要學習某些東西時,你應該思考並嘗試一下嗎? – Stony

+0

正如你自己所言,我們已經對這個主題有幾千個粗略的回答。 – mario

相關問題