【问题标题】:pasing a html file and getting values from table using php?使用 php 传递 html 文件并从表中获取值?
【发布时间】:2011-03-31 09:56:39
【问题描述】:

我在表格中完成的 html 页面上有这么长的课程列表,即

<tr class="navyLightgrey">
<td>3ADC7S1</td><td>SOFTWARE PROJECT MANAGEMENT (IIT Sri Lanka)</td><td align="Center">2009/0</td><td align="Center">Y</td><td align="Center">

<a id="dgModules__ctl2_lnkModule" href="http://example.com">View</a>

             </td>

            </tr>

<tr class="navyLightgrey">
<td>3ADC7S2</td><td>SOFTWARE ARCHITECTURE (IIT Sri Lanka)</td><td align="Center">2009/0</td><td align="Center">Y</td><td align="Center">

<a id="dgModules__ctl3_lnkModule" href="http://example.com" target="_self">View</a>

           </td>

             </tr>

以这种格式完成。我想获得第二个td 的值,它表示每个 tr 项目的课程名称,即 SOFTWARE ARCHITECTURE (IIT Sri Lanka) 和 SOFTWARE PROJECT MANAGEMENT (IIT Sri Lanka)。我想通过html页面做一个while循环并获取每个值并回显它。谢谢

【问题讨论】:

  • 您要从中窃取数据的网站是否没有可以与之交互的 RSS 提要,而不是抓取 HTML?

标签: php mysql html html-parsing


【解决方案1】:
$html = 'your html';
$dom = new DOMDocument();
$dom->loadHTML($html); // or loadHTMLFile

$xpath = new DOMXPath($dom);
$arrNodes = $xpath->query('//tr/td[2]/text()');

foreach($arrNodes as $node)
    echo $node->nodeValue . '<br />';

【讨论】:

    【解决方案2】:

    使用DOMDocument::loadHTML,然后在 DOMDocument 中搜索正确的元素。

    【讨论】:

      【解决方案3】:

      这是通过“HTML DOM Parser”完成的。您可以使用,例如this one

      【讨论】:

      • 感谢您,当我在 html 页面中找到 时,如何告诉它访问第二个 ? :)) +!来自我
      • 因为这是“foreach”循环,它将遍历所有匹配的元素。如果你想访问“TR之后的下一个TR,在哪里有一些识别的东西”,你应该添加一些“如果匹配,设置变量found = 1”并在循环中添加“如果找到= 1那么这就是我需要的一个TR” .
      猜你喜欢
      相关资源
      最近更新 更多
      热门标签