我有一个 xpath 查询,它从表行中返回一个 td(宽度为 60)的描述。我每次查询提取 0 到 30 行。
$textTags = $xpath->query( '//table/tr/td[@width=60]' );
每个表格行看起来像这样
<tr>
<td width=60 bgcolor='#ffffcc'><b>Description</b></td>
<td align=center width=80><img src='http://></td>
<td width=50 bgcolor='#ffffcc' align=center><b>1</b></td>
<td bgcolor='#ffffcc'><b>Toy</b></td>
<input type='hidden' name='obj_id_3' value='20885'><input type='hidden' name='oldcost_3' value='0'></td>
<td align=center bgcolor='#ffffcc'><input type='text' name='cost_3' size=6 maxlength=5 value='0'></td>
<td width=180 bgcolor='#ffffcc'><i>more text</i></td>
<td width=40 bgcolor='#ffffcc' align=center><select name=back_to_inv[20885]>
<tr>this continues on a max of 30 times</tr>
我通过一个循环来获取此信息:
foreach ( $textTags as $tag ){
$item = $tag->nodeValue;
}
我得到了我需要的描述文本。但是,有一个“隐藏”输入类型,其中包含一个 name=obj_id_3
和一个 value=20885
,我需要在每个相应的传递中获取它们。另外,我如何获得那些隐藏的输入值,它们是我正在查看的当前 tr 的一部分?每个 tr 只有 1 个我需要访问的记录,所以我不必担心多个记录,您在上面看到的表格是每个表格的外观,减去唯一描述和隐藏的名称和值。
最佳答案
您可以只使用 or 来分别查询输入。有点像
$xpath->query("//table/tr/td[@width=60]|//table/tr/input[contains(@id, 'obj_id')]");
关于php - Xpath并在同一表行中选择不同的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11696398/