我是这里的新手,也是python的新手,所以我正在努力完成一个简单的任务,希望您能为我提供帮助。
我有一个文本文件,其中包含以下格式的数据:
<add key="DateFormat" value="dd-MMM-yyyy"/>
<add key="JsDateFormat" value="DD-MMM-YYYY"/>
<add key="dbDateFormat" value="dd-MMM-yyyy HH:mm:ss:fff"/>
我想要做的是读取并打印包含某些键(例如DateFormat和dbDateFormat)的行并打印它们的值。
我正在使用以下文件读取文件:
f = open("file.config", "r")
file = f.read()
print(file)
它会按预期读取整个文件,但我不知道如何在上述条件下进行搜索和打印。
非常感谢您的帮助。
答案 0 :(得分:0)
首先,您需要检查文档是否为正确的XML文件。如果我使用lxml
库阅读,则示例内容将引发解析错误。因此,首先需要对其进行修复。以下节点必须是根节点的子节点。假设根节点为<body>
。
from lxml import etree
text="""
<body>
<add key="DateFormat" value="dd-MMM-yyyy"/>
<add key="JsDateFormat" value="DD-MMM-YYYY"/>
<add key="dbDateFormat" value="dd-MMM-yyyy HH:mm:ss:fff"/>
</body>
"""
parsed = etree.fromstring(text)
# Now applying xpath to get value
print(parsed.xpath("//add[@key='DateFormat']/@value"))
# Which outputs to ['dd-MMM-yyyy']
您可以使用or
xpath表达式从所需的键中获取值。
答案 1 :(得分:0)
感谢您的回答,我使用了一个简单的for / if循环并解析了文本字符串来处理它,反正还是谢谢!!