同上文,随着笔者写的脚本部署在服务器上常态化运行后,有很多地方需要改成可配置的,这样方便其他小伙伴在使用时能够快速完成配置,不用去关注代码逻辑。考虑两种配置文件形式,json或者xml,考虑到xml可以写注释,而json不行,遂选择xml作为配置文件类型。
配置文件
<config>
<start>2023-06-24</start>
<address>www.baidu.com
<is_test>true</is_test>
</address>
</config>
读取xml源码
具体这个三方库的底层逻辑没有读过,使用过程中注意,调用DOMTree.documentElement
后获得就是标签config
中的所有节点,而且需要注意的是,is_test
虽然是address
的子节点,但是也需要通过getElementsByTagName
获取。只是获取标签内的数据内容的话,getElementsByTagName(标签名)[0].childNodes[0].data
即可。但获取到的数据前后可能有会有回车或者空格,注意加上strip()
清洗一下比较好。
from xml.dom.minidom import parse
def get_config():
# minidom解析器打开xml文档并将其解析为内存中的一棵树
DOMTree = parse(r'config.xml')
# 获取xml文档对象,就是拿到树的根
config = DOMTree.documentElement
start_str = config.getElementsByTagName('start')[0].childNodes[0].data.strip()
address_str = config.getElementsByTagName('address')[0].childNodes[0].data.strip()
is_test_str = config.getElementsByTagName('is_test')[0].childNodes[0].data.strip()
print(start_str)
# 2023-06-24
print(address_str)
# www.baidu.com
print(is_test_str)
# true