Xpath并在同一表格行中选择不同的信息


Xpath and selecting different info in the same table row

我有一个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_3value=20885的"隐藏"输入类型,我需要在每个相应的过程中获得。此外,我如何获得这些隐藏的输入值,这些值是我正在查看的当前tr的一部分?每个tr只有一个我需要访问的记录,所以我不必担心多个,上面的表就是每个表的外观,减去了唯一的描述和隐藏的名称和值。

您可以使用或单独查询输入。类似的东西

$xpath->query("//table/tr/td[@width=60]|//table/tr/input[contains(@id, 'obj_id')]");