我正在尝试将频道名称替换为 AndroidManifest.xml 以批量生成一组频道 apk 包以供发布。
<meta-data android:value="CHANNEL_NAME_TO_BE_DETERMINED" android:name="UMENG_CHANNEL"/>
从一个 xml 文件。
频道配置保存在配置文件中,例如:
channel_name output_postfix valid
"androidmarket" "androidmarket" true
这是我尝试过的:
manifest_original_xml_fh = open("../AndroidManifest_original.xml", "r")
manifest_xml_fh = open("../AndroidManifest.xml", "w")
pattern = re.compile('<meta-data\sandroid:value=\"(.*)\"\sandroid:name=\"UMENG_CHANNEL\".*')
for each_config_line in manifest_original_xml_fh:
each_config_line = re.sub(pattern, channel_name, each_config_line)
print each_config_line
它取代了显然不是我需要<meta-data android:value="CHANNEL_NAME_TO_BE_DETERMINED" android:name="UMENG_CHANNEL"/>
的整体。androidmarket
然后我发现问题是pattern.match(each_config_line)
返回匹配结果,结果组之一是“CHANNEL_NAME_TO_BE_DETERMINED”。我也尝试过提供一些替换实现功能,但仍然失败。
那么,既然我已经成功找到了模式,我该如何正确替换匹配的结果组元素呢?