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

使用Python ElementTree提取XML标签及其子标签文本

解决XML中标签含子标签的文本提取及DataFrame存储问题

ElementTree的text属性仅能获取标签的直接文本,要提取包含子标签在内的全部文本,用itertext()方法即可解决——它会递归遍历目标标签及其所有子元素,自动收集所有文本片段。

完整实现代码

import xml.etree.ElementTree as ET
import pandas as pd

# 1. 解析本地XML文件
tree = ET.parse("your_local_file.xml")  # 替换为你的XML文件路径
root = tree.getroot()

# 2. 提取所有<z>标签的完整文本(含子标签内容)
z_contents = []
for z_tag in root.findall(".//z"):
    # 拼接所有文本片段并去除首尾空白
    full_text = "".join(z_tag.itertext()).strip()
    z_contents.append(full_text)

# 3. 转换为指定格式的DataFrame
df = pd.DataFrame({"z_tag_content": z_contents})

# 可选:若需保留<z>标签属性(如id),可扩展列
# z_contents = []
# for z_tag in root.findall(".//z"):
#     full_text = "".join(z_tag.itertext()).strip()
#     z_id = z_tag.get("id")  # 假设<z>标签存在id属性
#     z_contents.append({"tag_id": z_id, "content": full_text})
# df = pd.DataFrame(z_contents)

关键说明

  • root.findall(".//z"):通过XPath表达式递归查找XML结构中所有层级的标签,无需关注其所在位置。
  • z_tag.itertext():返回迭代器,依次输出当前标签及其所有嵌套子标签(如<std>、<italic>)的文本内容。
  • "".join(...):将零散的文本片段拼接为完整字符串,strip()用于清理首尾多余的空白字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:49:51