使用PHP简单HTML DOM抓取数据

使用PHP简单HTML DOM抓取数据,php,parsing,simple-html-dom,Php,Parsing,Simple Html Dom,我喜欢这样的结构: <tr> <td> <strong>Tel. nr.:</strong> +370 000 000 <strong>Faksas:</strong> +370 5 0000 </td> </tr> 电话号码: +370 000 000 Faksas: +370 5 0000 我对使用简单的HTML

我喜欢这样的结构:

<tr>
    <td>
        <strong>Tel. nr.:</strong>
        +370 000 000
        <strong>Faksas:</strong>
        +370 5 0000
    </td>
</tr>

电话号码:
+370 000 000
Faksas:
+370 5 0000
我对使用简单的HTMLDOM有了新的认识。我需要的是内容+370000 000+370 50000。我发现这个库不支持Xpath,如何编写一个查询来提取HTML链接后的内容

我只找到了一种方法,获取HTML,并使用正则表达式从
获取文本,直到
,但可能简单的HTML DOM有自己的方法来实现这一点?

像这样尝试

   <?php
    require('simple_parser.php');
    $html = str_get_html('
    <tr>
        <td>
            <strong>Tel. nr.:</strong>
            +370 000 000
            <strong>Faksas:</strong>
            +370 5 0000
        </td>
    </tr>');
    $td =$html->find('td',0) ; 
    echo $td->plaintext;

    ?>

发布完整的代码以获得清晰的答案

您可以使用
->find('text')
来获取文本节点:

$sample_html = '
<table>
<tr>
    <td>
        <strong>Tel. nr.:</strong>
        +370 000 000
        <strong>Faksas:</strong>
        +370 5 0000
    </td>
</tr>
</table>
';

$html = str_get_html($sample_html);
foreach($html->find('tr') as $row) {
    $first_td = $row->find('td', 0);
    echo $first_td->find('text', 2);
    echo $first_td->find('text', 4);
}

你的密码在哪里?尝试在
中使用children,我认为您提供的RegEx方法是合法的。我刚刚浏览了文档,您可以通过检查从

$dom = new DOMDocument;
$dom->loadHTML($sample_html);
$xpath = new DOMXpath($dom);
$elements = $xpath->query('//tr[1]/td[1]/text()');
foreach($elements as $e) {
    echo trim($e->textContent) . '<br/>';
}