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

Python LXML XPath查询:硬编码URL失效但字节串可用

XML解析AttributeError问题的解决建议
  • 确认完整XML的结构差异
    你用片段能正常提取属性,说明片段里的<text>节点确实带有parsable-cite属性,但完整URL返回的XML可能存在两种情况:

    1. 并非所有<text>节点都包含该属性,你的代码没做判空处理,直接访问attrib就会触发报错
    2. 完整XML带有命名空间,当前解析逻辑未处理命名空间,导致找不到目标<text>节点,返回None后调用attrib引发错误
  • 调整解析逻辑,增加判空与命名空间处理
    参考以下代码,先处理命名空间(根据XML实际情况调整),再判空后提取属性:

    import xml.etree.ElementTree as ET
    import requests
    
    # 获取完整XML内容
    resp = requests.get("https://www.congress.gov/118/bills/hr61/BILLS-118hr61ih.xml")
    root = ET.fromstring(resp.content)
    
    # 匹配XML实际命名空间,示例为国会文档常用命名空间
    ns = {"akn": "http://docs.oasis-open.org/legaldocml/ns/akn/3.0"}
    # 带命名空间查找所有text节点
    text_nodes = root.findall(".//akn:text", ns)
    
    for node in text_nodes:
        # 先判断节点非空,再尝试获取属性
        if node:
            parsable_cite = node.attrib.get("parsable-cite")
            if parsable_cite:
                print(parsable_cite)
    
  • 验证XML完整性
    网络请求可能因不稳定返回不完整的XML,导致解析后节点缺失。可以先将URL返回内容保存到本地文件,检查是否完整,再用本地文件测试解析代码,排除网络因素影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 18:02:26