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

基于行内容分配变量:处理指定XML结构文件并输出内容

嘿,我来帮你搞定这个需求!看起来你有一段类似标记结构的内容,想要逐行打印内容,同时给不同区块的元素分配对应的变量对吧?我用Python给你写个实用的示例方案,应该能完美匹配你的需求:

首先先把你的示例内容贴出来方便参考:

Contents Contents Contents Contents Contents Contents Contents Contents Contents Contents

实现思路

我们可以用正则表达式识别<b>和<v>标签,提取对应的名称和内容,然后用变量存储每个区块的信息,同时逐行打印输出。

代码示例

import re

# 你的原始内容
raw_content = '<b n="First"> <v n="1">Contents</v> <v n="1">Contents</v> <v n="1">Contents</v> <v n="1">Contents</v> <b n="Second"> <v n="1">Contents</v> <v n="1">Contents</v> <v n="1">Contents</v> <v n="1">Contents</v> <v n="1">Contents</v> <b n="Third"> <v n="1">Contents</v>'

# 定义正则匹配规则
block_pattern = re.compile(r'<b n="([^"]+)">')
item_pattern = re.compile(r'<v n="1">([^<]+)</v>')

# 拆分内容为各个区块
blocks = block_pattern.split(raw_content)[1:]  # 跳过第一个空元素
current_section = None
section_items = {}

# 遍历处理每个部分
for i in range(0, len(blocks), 2):
    current_section = blocks[i]
    section_items[current_section] = []
    # 提取当前区块下的所有v标签内容
    items = item_pattern.findall(blocks[i+1])
    section_items[current_section] = items
    
    # 逐行打印当前区块的内容,并分配变量
    print(f"=== 区块: {current_section} ===")
    for idx, item in enumerate(items, 1):
        # 这里可以给每个item分配独立变量,比如用动态变量名或者直接用列表存储
        # 示例:用变量名如first_item_1,不过更推荐用字典/列表管理
        locals()[f"{current_section.lower()}_item_{idx}"] = item
        print(f"第{idx}项内容: {item}")

# 验证变量是否正确分配
print("\n--- 验证变量 ---")
print(f"first_item_1: {first_item_1}")
print(f"second_item_3: {second_item_3}")
print(f"third_item_1: {third_item_1}")

代码说明

  • 用re模块的正则表达式精准匹配<b>区块名称和<v>标签里的内容
  • 用字典section_items存储每个区块对应的所有内容,方便后续批量处理
  • 通过locals()动态给每个内容项分配独立变量(比如first_item_1对应First区块的第一个内容),当然如果你觉得动态变量不好维护,直接用字典或列表存取会更稳妥
  • 逐行打印每个区块和对应的内容,清晰直观

运行这段代码后,你就能看到每行内容被打印出来,同时对应的变量也已经分配好可以直接使用啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:44:29