【发布时间】:2017-09-18 11:18:49
【问题描述】:
我正在使用一些代码从 HTML 页面中挑选出所有 <td> 标记:
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('td') as $node) {
$array_data[ ] = $node->nodeValue;
}
这会将数据很好地存储在我的数组中。
正在查看的html数据是:
<tr>
<td>DATA 1</td>
<td><a href="12345">DATA 2</a></td>
<td>DATA 3</td>
</tr>
$array_data 返回:
Array([0])=>DATA 1 [1]=>DATA 2 [2]=> DATA 3)
我想要的输出是从与页面上的相关联的<a> 标记中获取代码。期望的输出:
Array([0])=>DATA 1 [1]=>12345 [2]=>DATA 2 [3]=> DATA 3)
我认为<a> 会被称为子节点,如果这似乎是一个愚蠢的问题,我对使用 DOM 很抱歉。
我已阅读 SO 链接: Using PHP dom to get child elements
我已使用此代码来选择 href:
foreach ($dom->getElementsByTagName('td') as $node) {
foreach ($node->getElementsByTagName('a') as $node){
$link = $node->getAttribute('href');
echo '<br>';
echo $link;
}
$array_data[ ] = $node->nodeValue;
}
对于其他阅读材料的任何帮助或指示将不胜感激!
谢谢
【问题讨论】:
-
我发布了解决您问题的答案。那你为什么改变问题?你有什么问题?
-
感谢您的解决方案 Mohammed。我正在阅读其他 SO 帖子以同时找到解决方案。一旦我在 SO 帖子上找到了一些东西,我就在我的问题中发布了更新的代码。
标签: php parsing dom html-parsing domdocument