浏览器可以理解的 colspan 属性值的 XPath?

问题描述 投票:0回答:1

我有一个 HTML 表格,其中可能缺少或格式错误

colspan
值:

<table border="1">
  <tbody>
    <tr>
      <th>A</th>
      <th>B</th>
      <th>C</th>
      <th>D</th>
      <th>E</th>
      <th>F</th>
      <th>G</th>
      <th>H</th>
      <th>I</th>
      <th>J</th>
      <th>K</th>
      <th>L</th>
      <th>M</th>
    </tr>
    <tr>
      <td                  >1</td>
      <td colspan="2"      >2</td>
      <td colspan="-2"     >3</td>
      <td colspan="*2#%@!" >4</td>
      <td colspan="2.7"    >5</td>
      <td colspan="-2.3"   >6</td>
      <td colspan="2e1"    >7</td>
      <td colspan=" 2"     >8</td>
    </tr>
  </tboby>
</table>

我想使用 HTML4~5 规范获取每个

colspan
td
值(我目前正在尝试找出 W3C 规范告诉我们的内容)。现在假设上面代码片段的结果是我的预期输出:

html xml xpath xpath-3.1
1个回答
1
投票

考虑使用正则表达式模式匹配值来提取前导数字字符,忽略以第一个非数字字符开头的所有字符。然后成功匹配产生前导整数;其他所有结果均为 1:

//td/(if (matches(@colspan,'^\s*\d+')) 
          then replace(@colspan, '^\s*(\d+).*$', '$1') 
          else '1')
© www.soinside.com 2019 - 2024. All rights reserved.