使用Mojo :: DOM进行CSS选择

时间:2017-10-18 18:18:20

标签: html css perl mojo-dom

这是一个多学科的问题,所以答案可能不是纯粹的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

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

1 个答案:

答案 0 :(得分:2)

来自Documentation

  

文字

     

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

试着试一试:

(当然我不知道perl,所以如果我的语法错了...抱歉)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="daterangepicker dropdown-menu ltr single opensleft show-calendar">
  <div class="calendar left single">
    <div class="daterangepicker_input">
      <div class="calendar-table">
        <table class="table-condensed">
          <tbody>
            <tr>
              <td class="weekend off available" data-title="r0c0">24</td>
              <td class="off available" data-title="r0c1">25</td>
              <td class="off available" data-title="r0c2">26</td>
              <td class="off available" data-title="r0c3">27</td>
              <td class="off available" data-title="r0c4">28</td>
              <td class="off available" data-title="r0c5">29</td>
              <td class="weekend off available" data-title="r0c6">30</td>
            </tr>
            <tr>
              <td class="weekend available" data-title="r1c0">1</td>
              <td class="available" data-title="r1c1">2</td>
              <td class="available" data-title="r1c2">3</td>
              <td class="available" data-title="r1c3">4</td>
              <td class="available" data-title="r1c4">5</td>
              <td class="available" data-title="r1c5">6</td>
              <td class="weekend available" data-title="r1c6">7</td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </div>
</div>