【问题标题】:Php DOMNode travellingPHP DOMNode 旅行
【发布时间】:2014-08-05 13:51:12
【问题描述】:

我正在尝试解析 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 值?

【问题讨论】:

    标签: php html nextsibling


    【解决方案1】:

    一种可能性是使用 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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 2011-09-08
      • 2011-01-15
      • 2011-06-04
      • 2011-05-23
      相关资源
      最近更新 更多