【问题标题】:get specific data from dom object从 dom 对象获取特定数据
【发布时间】:2018-01-29 00:24:36
【问题描述】:

这个问题上瘾了我之前的问题:get specific data from php cURL

这是我现在的代码:

$html = file_get_contents('https://nolp.dhl.de/nextt-online-public/de/search?piececode=TRACKING_NUMBER');
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('td') as $node) {
    echo $dom->saveHtml($node);
}

我的 $html 变量的一部分:

<table>
   <tr>
      <td data-label="Date">xxx</td>
      <td data-label="Location">xxx</td>
      <td data-label="State">xxx</td>
  </tr>
   <tr>
      <td data-label="Date">xxx</td>
      <td data-label="Location">xxx</td>
      <td data-label="State">xxx</td>
  </tr>
   <tr>
      <td data-label="Date">xxx</td>
      <td data-label="Location">xxx</td>
      <td data-label="State">xxx</td>
  </tr>
   <tr>
      <td data-label="Date">xxx</td>
      <td data-label="Location">xxx</td>
      <td data-label="State">xxx</td>
  </tr>
</table>

通过上面的代码,我得到了具有&lt;td&gt; 标记的元素的所有值。 但是如何获取 data-label 属性 = "Date" 的所有 &lt;td&gt; 标签的值?

非常感谢:)

【问题讨论】:

  • 尝试使用getElementsByTagName('td').innerHtml
  • @icecub 不只是针对 XML 而不是 HTML?
  • 另一种解决方案是使用:document.querySelectorAll('td.myClass');
  • @SuperDJ 看看给出的例子。它工作得很好

标签: php html dom


【解决方案1】:

试试:

$html = '<table>
       <tr>
          <td data-label="Date">xD1</td>
          <td data-label="Location">xxx</td>
          <td data-label="State">xxx</td>
      </tr>
       <tr>
          <td data-label="Date">xD2</td>
          <td data-label="Location">xxx</td>
          <td data-label="State">xxx</td>
      </tr>
    </table>';
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('td') as $node) {
    //echo $dom->saveHtml($node);
    if ($node->getAttribute('data-label') == "Date")
    {
      echo $node->nodeValue;
      echo "<br>";
    }
}

输出:

xD1
xD2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 2011-06-29
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    相关资源
    最近更新 更多