我有几GB的XML格式的日志文件。我感兴趣的是使用特定命令查找行并提取订购命令的用户。
这就是说我想检查特定值的所有行中的特定字段,然后从同一行的另一个字段中提取未知值。我该怎么做呢? (我已经尝试过转向文档和其他来源而不了解它是如何工作的。)
我目前使用Python 2.7.15,但如果3. *更好或更容易以任何方式我会使用它。
这是我感兴趣的日志文件中一行的示例:
<?xml version="1.0" encoding="UTF-8"?>
<IHEYr4>
<UserAuthenticated>
<LocalUsername>User1</LocalUsername>
<Action>Login</Action>
</UserAuthenticated>
<Host>192.168.1.15</Host>
<TimeStamp>2018-01-18T02:31:00</TimeStamp>
</IHEYr4>
答案 0 :(得分:0)
使用ElementTree
<强>演示:强>
x = """<?xml version="1.0" encoding="UTF-8"?>
<IHEYr4>
<UserAuthenticated>
<LocalUsername>User1</LocalUsername>
<Action>Login</Action>
</UserAuthenticated>
<Host>192.168.1.15</Host>
<TimeStamp>2018-01-18T02:31:00</TimeStamp>
</IHEYr4>
"""
import xml.etree.ElementTree as ET
xmlVal = ET.fromstring(x)
if xmlVal.find("UserAuthenticated/Action").text == 'Login':
print(xmlVal.find("Host").text, xmlVal.find("TimeStamp").text)
<强>输出:强>
('192.168.1.15', '2018-01-18T02:31:00')