2012-10-09 30 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

相关问题