You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用XPath将td的rowspan属性转换为>=1的整数?

提取并转换XML中td节点的rowspan属性值

输入XML内容

<tr>
   <td                  />
   <td rowspan="3"      />
   <td rowspan="-2"     />
   <td rowspan="*8#%@!" />
   <td rowspan="5.7"    />
   <td rowspan="-4.3"   />
   <td rowspan="6e1"    />
</tr>

需求说明

提取每个<td>节点的rowspan属性值,并将其转换为大于等于1的整数,预期输出序列如下:

1
3
1
1
5
1
60

处理逻辑

  • 无rowspan属性的<td>,直接返回1
  • 有rowspan属性的情况:
    1. 尝试将属性值转为数值(支持科学计数法格式)
    2. 转换失败(含特殊字符等非法格式),返回1
    3. 转换后数值小于1(负数、小于1的正数),返回1
    4. 小数取整数部分(如5.7转为5)
    5. 合法正整数/科学计数法对应整数直接保留(如3保留、6e1转为60)

Python实现示例

import xml.etree.ElementTree as ET

# 解析目标XML
xml_content = '''
<tr>
   <td                  />
   <td rowspan="3"      />
   <td rowspan="-2"     />
   <td rowspan="*8#%@!" />
   <td rowspan="5.7"    />
   <td rowspan="-4.3"   />
   <td rowspan="6e1"    />
</tr>
'''

root = ET.fromstring(xml_content)
for td in root.findall('td'):
    rowspan_val = td.get('rowspan')
    if not rowspan_val:
        print(1)
        continue
    try:
        num = float(rowspan_val)
        int_num = int(num)
        print(max(int_num, 1))
    except ValueError:
        print(1)

运行上述代码后,输出结果与预期完全一致。

内容的提问来源于stack exchange,提问作者Fravadona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 08:12:39