解析xml文件并批量修改Lable标签的Size值

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import shutil,os
import json
import math
# from lxml import etree
import xml.etree.ElementTree as ET

ET.register_namespace('e',"http://ns.egret.com/eui") 
ET.register_namespace('w',"http://ns.egret.com/wing")
ET.register_namespace('tween',"egret.tween.*") 
# ET.register_namespace('ns1',"*")

defaultPath = "G:\\G123Project\\h5client20221207\\resource\\default.thm.json"
filePath = "G:\\G123Project\\h5client20221207\\resource"
# filePath = "E:\\S1"


def has_key(keyInfo, key):
	for value in keyInfo:
		if value == key:
			return True
	return False

defaultInfo = {}
def SaveDefault(defaultPath):
	global defaultInfo
	with open(defaultPath, 'r') as fcc_file:
		fcc_data = json.load(fcc_file)
		defaultInfo = fcc_data["styles"]

def SetXmlSize(filePath, sizeValue):
	global defaultInfo

	LabelNum = 0
	tree = ET.parse(filePath)
	root = tree.getroot()
	for Label in root.iter("{http://ns.egret.com/eui}Label"):
		info = Label.attrib
		if has_key(info, "size"):
			size = math.ceil(float(info["size"]) )+ 2
			Label.set("size", str(size))
		elif has_key(info, "style"):
			if has_key(defaultInfo, info["style"]):
				styleName = info["style"]
				if has_key(defaultInfo[styleName], "size"):
					styleInfo = defaultInfo[styleName]
					size = math.ceil(float(styleInfo["size"])) + 2
					Label.set("size", str(size))
				else:
					Label.set("size", str(sizeValue))
		else:
			Label.set("size", str(sizeValue))
		LabelNum = LabelNum + 1
	if LabelNum > 0:
		tree.write(filePath, encoding="utf-8",  xml_declaration=True, short_empty_elements=True)

# default_namespace="{http://ns.egret.com/eui}"

def TraverseAllFile(filePath):
	fileTotal = 0
	file_dir = os.walk(filePath, topdown=True)
	for path,dir_list,file_list in file_dir:
		for file_name in file_list:
			strInfo = file_name.split(".")
			if strInfo[len(strInfo)-1] == "exml":
				needPath = path+"\\"+file_name
				fileTotal = fileTotal + 1
				print(needPath)
				SetXmlSize(needPath, 32)
	print("fileTotal :", fileTotal)

if __name__ == '__main__':
	SaveDefault(defaultPath)
	TraverseAllFile(filePath)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值