美文网首页
无标题文章

无标题文章

作者: 静熙老师哈哈哈 | 来源:发表于2017-04-12 22:38 被阅读0次

    ``! /usr/bin/env python

    coding=utf-8

    '''

    Created on 2013-3-31

    info_fight_monster.xls转换为XML格式。转换分为以下几步:

    step1读取xml文件,info_fight_monster.xls

    step2解析出怪物基本信息,在base这个sheet里面,并放到一个xml文件中

    step3解析出怪物的技能信息,并将技能信息插入到对应的xml

    step4:解析出怪物的奖励信息,并插入到对应XML

    step5:保存xml文件

    @author:tylerzhu'''

    fromlxmlimportetree

    importxlrd3, codecs

    attrib = ["monsterSID","classId","type","level","attrib",#

    "attack","skill","define","speed","strength",#

    "luck","name","desc","icon","url","frameRate"];

    prize = ["monsterSID","prizeSID","type","infoType","gameID","itemType",#

    "itemSID","num","plusSID","level","name","desc","icon"];

    skill = ["monsterSID","skillSID","skillLevel"];

    info_fight_monster_xml = etree.ElementTree(etree.Element("data"));

    defopenxls():

    excel = xlrd3.open_workbook("xls/info_fight_monster.xls");

    base = excel.sheet_by_name("base");

    monster = excel.sheet_by_name("skill");

    prize = excel.sheet_by_name("prize");

    return(base, monster, prize);

    defbuildMonsterBase(xls):

    sheet = xls[0];

    forrowinrange(1, sheet.nrows):

    monsterAttr = {};

    forcolinrange(0, sheet.ncols):

    ifsheet.cell(row, col).value !=Noneandcol < len(attrib):

    monsterAttr[attrib[col]] = sheet.cell(row, col).value;

    iftype(monsterAttr[attrib[col]]) == float:

    print(str(round(monsterAttr[attrib[col]])))

    monsterAttr[attrib[col]] = str(round(monsterAttr[attrib[col]]));

    sub = etree.SubElement(info_fight_monster_xml.getroot(),"monster", monsterAttr);

    sub.tail ="\n"

    input()

    defbuildMonsterSkill(xls):

    sheet = xls[1];

    forrowinrange(1, sheet.nrows):

    skillAttr = {};

    forcolinrange(1, sheet.ncols):

    ifsheet.cell(row, col).value !=Noneandcol < len(attrib):

    skillAttr[skill[col]] = sheet.cell(row, col).value;

    iftype(skillAttr[skill[col]]) == float:

    skillAttr[skill[col]] = str(round(skillAttr[skill[col]]));

    monsterSID = str(int(sheet.cell(row,0).value));

    monster = info_fight_monster_xml.find("*[@monsterSID='"+ monsterSID +"']");

    monster.text = ("\n\t");

    sub = etree.SubElement(monster,"skill", skillAttr);

    sub.tail ="\n\t"

    defbuildMonsterPrize(xls):

    sheet = xls[2];

    forrowinrange(1, sheet.nrows):

    prizeAttr = {};

    forcolinrange(1, sheet.ncols):

    ifsheet.cell(row, col).value !=Noneandcol < len(attrib):

    prizeAttr[prize[col]] = sheet.cell(row, col).value;

    iftype(prizeAttr[prize[col]]) == float:

    prizeAttr[prize[col]] = str(round(prizeAttr[prize[col]]));

    monsterSID = str(int(sheet.cell(row,0).value));

    monster = info_fight_monster_xml.find("*[@monsterSID='"+ monsterSID +"']");

    monster.text = ("\n\t");

    sub = etree.SubElement(monster,"prize", prizeAttr);

    sub.tail ="\n\t"

    defbuild():

    xls = openxls();

    buildMonsterBase(xls);

    buildMonsterSkill(xls);

    buildMonsterPrize(xls);

    输出合并之后的配置

    ouput = codecs.open('output/info_fight_monster.xml','w','utf-8');

    ouput.write(etree.tounicode(info_fight_monster_xml.getroot()))

    ouput.close();

    if__name__ =='__main__':

    build();``

    相关文章

      网友评论

          本文标题:无标题文章

          本文链接:https://www.haomeiwen.com/subject/fcsvattx.html