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

标签 php dom xpath

我有一个 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/

相关文章:

c# - 使用 C# 使用 web 服务 php

javascript - 在本地文件上使用 jQuery 的 "load"方法

php - 如何使用XPath查询选择两个不同的元素

python - 从变量中删除值的最佳方法?创建数组,或使用正则表达式?或者用Xpath?

php - Queue:push() 在 Laravel 5 中被同步处理

php - 在另一个函数中使用 php 的魔术函数不起作用

javascript - DOM 操作的最佳工具?

javascript - 嵌套列表中的 jQuery 父/子

xml - 使用 tokenize 函数分割文本

php - 如何在三重内连接表中显示适当的数据?