0

我正在尝试解析 HTML 文档,并从标签中获取文本值,但问题是标签不包含任何特殊属性或有一些 id 来定位它们。唯一可以锚定的东西是另一个静态文本,用作标签。

源页面代码与此类似

 <tr>
<td>
  <span> 
    Some text to link to
  </span>
 </td>
 <td>
  <span> 
    THE text to get
  </span>
 </td>
</tr>

/*****************Parser Page Script*************************/
$file = "src/src.htm";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);

/********* Page that Processes *********/
//Pattern for regEx
$pattern = "/Some text to link to/";

$elements = $doc->getElementsByTagName('td');

if (!is_null($elements)) {
foreach ($elements as  $node){
  $text = $node->textContent;

 if(preg_match($pattern, $text, $matches)){
        echo "<pre>";
         print_r($node);
        echo "</pre>";

     }
    }
   }

如果结果为 [nextSibling] =>(省略对象值),如何获取搜索 td 的 nextSibling 值?

4

1 回答 1

0

一种可能性是使用 Xpath。示例 xpath:/table/tr/td/span

$file = "src/src.htm";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);


$xpath = new DOMXpath($doc);
$elements = $xpath->query('/table/tr/td/span');
if(!empty($elements))
{   
    foreach($elements as $element)
    {   
        echo $element->nodeValue;
    }
}
于 2014-08-05T14:13:12.090 回答