Esempio n. 1
0
def parse_xml(filename):
    """
    解析xml
    :param filename:
    :return:
    """
    saved_name = filename.replace('.xml', '.json')
    # 获取已经处理好的文字映射
    data = get_map('./files/template_map.json')

    # 读取xml文件
    with open('tmp/' + filename, 'r', encoding='utf-8') as f:
        xml_content = f.read()

    # 找出xml中核心部分
    res = re.findall('<GlyphOrder>(.*?)</GlyphOrder>', xml_content, re.S)[0]
    # 解析文字映射
    change_res = re.findall('<GlyphID id=".*?" name="(.*?)"/>', res)

    final_res = {}
    # 映射匹配
    for i in range(2, 603):
        tmpstr = 'glyph' + str(i)
        final_res[change_res[i]] = data[tmpstr]
    # 保存字典
    with open('tmp/' + saved_name, 'w', encoding='utf-8') as f:
        json.dump(final_res, f, ensure_ascii=False)
Esempio n. 2
0
 def replace_json_text(self, json_text, file_map):
     """
     替换json文本,根据加密字体文件映射替换json加密文本
     :param page_source:
     :param file_map:
     :return:
     """
     for k_f, v_f in file_map.items():
         font_map = get_map(v_f)
         for k, v in font_map.items():
             key = str(k).replace('uni', '&#x')
             key = '\\"' + str(k_f) + '\\">' + key + ';'
             value = '\\"' + str(k_f) + '\\">' + v
             json_text = json_text.replace(key, value)
     return json_text
Esempio n. 3
0
 def replace_review_html(self, page_source, file_map):
     """
     替换html文本,根据加密字体文件映射替换page source加密代码
     :param page_source:
     :param file_map:
     :return:
     """
     for k_f, v_f in file_map.items():
         font_map = get_map(v_f)
         for k, v in font_map.items():
             key = str(k).replace('uni', '&#x')
             key = '"' + str(k) + '"><'
             value = '"' + str(k) + '">' + str(v) + '<'
             page_source = page_source.replace(key, value)
     return page_source