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

如何解码带有LZ4压缩的XML文件中的Base64编码数据

如何解码并解压XML中的Base64+LZ4压缩数据

嗨,别担心,这事儿不难搞定!我来一步步教你怎么把这段编码压缩的数据还原成原始内容~

核心逻辑

你的数据是先做了LZ4压缩,再用Base64编码的,所以还原需要先Base64解码,再LZ4解压。下面用Python来实现,因为它对普通用户来说上手简单,依赖库也容易安装。

第一步:安装依赖

先打开命令行,安装LZ4的Python库:

pip install lz4

第二步:处理单条数据的代码

把你提供的那串编码字符串放进去,运行就能得到原始数据:

import base64
import lz4.block

# 你提供的Base64编码字符串
encoded_str = "VDIeHh4yAQBBFBQeFAEANDIjIxQADwIAx1AyMjIyMg=="

# 1. Base64解码:把字符串转成二进制压缩数据
decoded_bytes = base64.b64decode(encoded_str)

# 2. LZ4解压:还原成原始二进制数据
decompressed_bytes = lz4.block.decompress(decoded_bytes)

# 如果原始数据是文本格式,转成字符串;如果是二进制(比如图片、二进制文件),跳过这步
original_data = decompressed_bytes.decode('utf-8')

print("还原后的原始数据:")
print(original_data)

第三步:批量处理整个XML文件

如果要处理完整的XML文件,可以用XML解析工具批量处理所有符合条件的元素:

import base64
import lz4.block
import xml.etree.ElementTree as ET

# 替换成你的XML文件路径
xml_file_path = "your_original_file.xml"
# 处理后保存的XML路径
output_xml_path = "decoded_xml_file.xml"

# 加载XML文件
tree = ET.parse(xml_file_path)
root = tree.getroot()

# 遍历所有带有base64编码和lz4压缩属性的元素
for elem in root.findall('.//*[@coding="base64" and @compression="lz4"]'):
    if elem.text:
        # 去除字符串前后的空白字符
        encoded_str = elem.text.strip()
        # 解码+解压
        decoded_bytes = base64.b64decode(encoded_str)
        decompressed_bytes = lz4.block.decompress(decoded_bytes)
        # 把解压后的文本放回元素中(如果是二进制数据,建议保存到单独文件,不要直接放回XML)
        elem.text = decompressed_bytes.decode('utf-8')

# 保存处理后的XML文件
tree.write(output_xml_path, encoding='utf-8', xml_declaration=True)
print(f"处理完成,结果已保存到 {output_xml_path}")

注意事项

  • 如果解压后的数据不是文本(比如是二进制格式的资源),不要执行decode('utf-8'),可以用open('output.bin', 'wb').write(decompressed_bytes)把它保存成二进制文件。
  • 如果运行时提示LZ4解压错误,可能是压缩格式的问题(比如用了LZ4 frame格式),可以尝试把lz4.block.decompress换成lz4.frame.decompress试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 03:52:41