我正在尝试从特定节点的父节点获取文本。例如:
<td colspan="1" rowspan="1">
<span>
<a class="info" shape="rect"
rel="empLinkData" href="/employee.htm?id=8468524">
Jack Johnson
</a>
</span>
(*)
</td>
我可以使用以下方法成功处理锚标记:
$xNodes = $xpath->query('//a[@class="info"][@rel="empLinkData"]');
// $xNodes contains employee ids and names
foreach ($xNodes as $xNode)
{
$sLinktext = @$xNode->firstChild->data;
$sLinkurl = 'http://www.company.com' . $xNode->getAttribute('href');
if ($sLinktext != '' && $sLinkurl != '')
{
echo '<li><a href="' . $sLinkurl . '">' .
$sLinktext . '</a></li>';
}
}
现在,我需要从<td>
标签中检索文本(在这种情况下,(*)
在 span 标签关闭后立即出现),但我似乎无法正确引用它。
对我来说似乎最有意义的 xpath 是:
$xNodes = $xpath->query('//a[@class="info"]
[@rel="empLinkData"]/ancestor::*');
但它正在从嵌套在此代码上方的其他地方检索错误的数据。