0

这是一个多学科的问题,所以答案可能不是纯粹的 CSS。

我正在解析一个大表,我的目标是只检索<b></b>标签之外的文本。我能够选择行,但坚持如何只选择粗体标记之外的文本。

HTML

<div id="tab1">
<table width='650' class='subtblfont'>
    <tr><td>&nbsp;</td></tr> 
    <tr><td>&nbsp;</td></tr>        
    <tr>
        <td><b>Check-in Date:&nbsp;</b>04/20/2013</td>
        <td><b>Check-in Date:&nbsp;</b>04/25/2013</td>
    </tr>
</table>

代码

$row_content = $results_dom->find('div#tabs-1 tr:nth-child(3) td');

foreach (@$row_content) {
    print "$_\n";
}

输出

<td><b>Check-in Date:&nbsp;</b>04/20/2013</td>
<td><b>Check-in Date:&nbsp;</b>04/25/2013</td>

期望的输出

04/20/2013
04/25/2013

我可以使用正则表达式来提取文本,但这不是一个理想的解决方案。有没有办法只选择非粗体文本?

4

1 回答 1

2

文档

文本

仅从该元素中提取文本内容(不包括子元素)。

试试这个:

(当然我真的不知道 perl,所以如果我的语法错误......对不起)

$row_content = $results_dom->find('div#tabs-1 tr:nth-child(3) td')->each(sub { say $_->text})
于 2017-10-18T18:39:39.590 回答