php - 提取html代码中的两个字符串

标签 php dom xpath

我有一个 HTML 表格,其结构如下:

<tr>
    <td class='tablesortcolumn'>atest</td>
    <td >Kunde</td>
    <td ><a href=""><a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="93f6fef2faffd3f6ebf2fee3fff6bdf0fcfe" rel="noreferrer noopener nofollow">[email protected]</a></a></td>
    <td align="right"><a href="module/dns_reseller/user_edit.php?ns=3&uid=6952"><img src="images/iconedit.gif" border="0"/></a> <img src="images/pixel.gif" width="2" height="1" border="0"/> <a href="module/dns_reseller/user.php?delete=true&uid=6952" onclick="return confirm('Möchten Sie den Datensatz wirklich löschen?');"><img src="images/icontrash.gif" border="0"/></a></td>
</tr>

有数百个 tr block 。

我要提取atest<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e2878f838b8ea2879a838f928e87cc818d8f" rel="noreferrer noopener nofollow">[email protected]</a>

我尝试了以下方法:

$document = new DOMDocument();
$document->loadHTML($data);
$selector = new DOMXPath($document);
$elements = $selector->query("//*[contains(@class, 'tablesortcolumn')]");

foreach($elements as $element) {
  $text = $element->nodeValue;
  print($text);
  print('<br>');
}

提取atest没有问题,因为我可以获取带有tablesortcolumn的元素类(class)。我如何获得电子邮件地址?

我不能简单地使用//table/tr/td/a因为网站上还有其他类似结构的元素。所以我需要通过选择一个空的 href 标签来获取它。我已经尝试过//table/tr/td/a[contains(@href, '')]但它返回的结果与 //table/tr/td/a 相同

有人知道如何解决这个问题吗?

最佳答案

您可以尝试运行包含字符串@的xpath吗?这似乎不太可能用于其他用途。

所以像这样的东西可能会起作用

//*[text()[contains(.,'@')]]

关于php - 提取html代码中的两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29630883/

相关文章:

javascript - 联系表单组件的 Joomla Ajax 加载

php - 这是在 codeigniter 3.1.5 中发布和处理数据的最佳方式

javascript - 如何中和注入(inject)的远程 Ajax 内容?

javascript - document.addEventListener 和 window.addEventListener 的区别?

dom - Chrome 扩展 : how do I do modify DOM of a determinate page with contextMenus?

php - xpath表达式的结果是 : [object Text]. 应该是一个元素

html - 如何在 xpath 中获取选项的值而不是显示值?

php - google maps api v3 自动居中自动缩放

php - 组合两个选择查询 MySQL

javascript - Puppeteer 无法单击 DOM 中 XPath 指定的元素