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

如何从XML中提取releaseDate参数值?已尝试方法无效

问题描述

我曾尝试过一种方法,但对我无效。我想要从以下XML中获取releaseDate的值:

return (<Product prodID="bed" lang="en"> <ProductState stateType="Published" stateDateTime="2019-04" testDate="2019-04" releaseDate="2019"/>
)

我尝试了以下代码:

from pathlib import Path
import os
import tempfile
import xml.etree.ElementTree as ET

xmlfile = 'path_to_xml'
tree = ET.parse(xmlfile)
root = tree.getroot()

for elm in root.findall("./Product/ProductStatus/releaseDate"):
    print(elm.attrib)

解决方案

你的代码有两处错误导致无法获取目标值:

  1. 元素名称错误:XML中的元素是ProductState,但你代码里写的是ProductStatus,路径匹配失败
  2. 取值逻辑错误:releaseDate是ProductState的属性,并非子元素,不能通过findall直接定位到它

修正后的代码如下:

import xml.etree.ElementTree as ET

xmlfile = 'path_to_xml'
tree = ET.parse(xmlfile)
root = tree.getroot()

# 遍历所有Product下的ProductState元素
for product_state in root.findall("./Product/ProductState"):
    # 获取releaseDate属性值
    release_date = product_state.get("releaseDate")
    print(release_date)

如果你的XML根节点就是<Product>(比如完整XML仅包含这段内容),可以简化代码:

import xml.etree.ElementTree as ET

xmlfile = 'path_to_xml'
tree = ET.parse(xmlfile)
root = tree.getroot()

# 直接获取根节点下的ProductState元素
product_state = root.find("ProductState")
if product_state:
    print(product_state.get("releaseDate"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:55:31