php - 使用 domDocument 和 DOMXPath 解析 HTML

标签 php html dom domdocument domxpath

我将此代码放入 $html 变量中:

...
...
<table id="tbvalue" class="table_main">
<tr align="center">
<td>
    <div style='background-color:#534522;' ><img src="operation.bmp" border="0" alt="image" width="250" height="60" /></div>
    <br />
</td>
</tr>
<tr align="center">
    <td class="other">
        more text
    </td>
</tr>
<tr align="center">
    <td>
    <input name="name" type="text" id="label" tabindex="1"/>
    </td>
</tr>
<tr>
    <td>
    <span id="lblErrCap" class="errfont"></span>
    </td>
</tr>
</table>
... 
...

注意:我需要第一次出现 <img> 位于 table id="tbvalue" 内部 我试图这样做:

$dom = new domDocument;

/*** load the html into the object ***/
@$dom->loadHTML($html); // the @ is to silence errors and misconfigures of HTML

/*** discard white space ***/
$dom->preserveWhiteSpace = false;
$xpath = new DOMXPath($dom);

$spans = $xpath->query('//img');
echo $spans->item(0)->getAttribute("src");

但是这个查询不了解表 table id="tbvalue" 并且只需采用第一个 <img>

获得第一个 img的方法是什么? 里面 table id="tbvalue"

最佳答案

这样做:

<?php
$xpath = new DOMXPath($dom);
$spans = $xpath->query('//table[@id="tbvalue"]//img[1]');
echo $spans->item(0)->getAttribute("src");

//运算符表示从当前节点中选择文档中与选择匹配的节点,无论它们位于何处

更多有用信息您可以找到here .

关于php - 使用 domDocument 和 DOMXPath 解析 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27745147/

相关文章:

php - 如何将数学函数应用于 MySQL 查询?

php - 是否可以将我的连接文件放在根目录中并从子目录中获取数据?

javascript - 如何在加载进度条后向变量添加金额并显示金额

html - nggrid 表格高度修复为 18 像素错误

javascript - DOM 点被解释为 chrome 中的对象

javascript - Uncaught ReferenceError : addRecord is not defined at HTMLButtonElement. onclick

php - 连接查询返回奇怪的结果

php - GCM 丢弃消息

html - 如何在 link_to 中包含 title 和 class 属性?

javascript - JS数组: Failed to execute 'appendChild' on 'Node' : parameter 1 is not of type 'Node'