php - PHP的Dom Node查找href属性问题

标签 php dom domdocument

我正在尝试使用php的domDocument从某些数据的URL中提取href。

以下内容为该网址拉 anchor ,但我想要该网址

$events[$i]['race_1'] = trim($cols->item(1)->nodeValue); 

如果有帮助,这里还有更多代码。
   // initialize loop
   $i = 0;
   // new dom object  
   $dom = new DOMDocument();  

   //load the html  
   $html = @$dom->loadHTMLFile($url);  
   //discard white space   
   $dom->preserveWhiteSpace = true;   

   //the table by its tag name  
   $information = $dom->getElementsByTagName('table'); 
   $rows = $information->item(4)->getElementsByTagName('tr');  

   foreach ($rows as $row)   
   { 
    $cols = $row->getElementsByTagName('td');   
    $events[$i]['title'] = trim($cols->item(0)->nodeValue); 
    $events[$i]['race_1'] = trim($cols->item(1)->nodeValue);   
$events[$i]['race_2'] = trim($cols->item(2)->nodeValue);  
$events[$i]['race_3'] = trim($cols->item(3)->nodeValue);
$date = explode('/', trim($cols->item(4)->nodeValue));
$events[$i]['month'] = $date['0'];
$events[$i]['day'] = $date['1'];
$citystate = explode(',', trim($cols->item(5)->nodeValue));   
$events[$i]['city'] = $citystate['0'];
$events[$i]['state'] = $citystate['1'];
$i++;
   }
   print_r($events);

这是TD标签的内容

<td width="12%" align="center" height="13"><!--mstheme--><font face="Arial"><span lang="en-us"><b>
          <font style="font-size: 9pt;" face="Verdana">
          <a linkindex="18" target="_blank" href="results2010/brmc5k10.htm">Overall</a>    

最佳答案

更新,我看到了问题。您需要从a获取td元素的列表。

$cols = $row->getElementsByTagName('td');
// $cols->item(1) is a td DOMElement, so have to find anchors in the td element
// then get the first (only) ancher's href attribute
// (chaining looks long, might want to refactor/check for nulls)
$events[$i]['race_1'] = trim($cols->item(1)->getElementsByTagName('a')->item(0)->getAttribute('href');

非常确定您应该能够在该项目上调用 getAttribute() 。您可以验证该项目是否为nodeType XML_ELEMENT_NODE;如果该项目不是DOMElement,它将返回一个空字符串。
<?php
// ...
$events[$i]['race_1'] = trim($cols->item(1)->getAttribute('href'));
// ...   
?>

参见相关:DOMNode to DOMElement in php

关于php - PHP的Dom Node查找href属性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6667189/

相关文章:

php - 四舍五入到最接近的分数(二分之一、四分之一等)

javascript - 无法生成多个图像

javascript - DOM 更新后出现 "mouseup"问题

php - 使用 DOMdocument() 方法按类名获取元素

php - 使用 XPATH 删除 <p><strong><br/> </strong></p>

php - 在 PHP 中使用 ImageMagick 倾斜移动图像

php - 在 mysqli_connect 上指定套接字选项

PHP 正则表达式 : need some explanation

javascript - 如何使用 jQuery 或 Javascript 删除一组元素并留下一个元素?

php - 如何获得边缘没有空格的文本节点?