我在分析包含&
字符的日志文件时遇到问题,但仅当它后面没有amp;
时。在解析之前可以做些什么吗?或者我必须在其他地方查找错误吗?
我得到了xml.etree.ElementTree.ParseError: not well-formed (invalid token)
错误,我已经将&
隔离为该行中唯一特殊的、与众不同的字符。在&
后面加上amp;
没有问题。
语法:
import xml.etree.ElementTree as ET
import os
import errno
path = "C:\\Users\\SuperUser\\Desktop\\audit\\audit\\saved\\audit"
for filename in os.listdir(path):
with open(path + "\\" + filename) as myfile:
lines = myfile.readlines()
xmlfile = open("logins.xml", "w")
for line in lines:
# print(ET.fromstring(line))
xmlVal = ET.fromstring(line)
finder = "UserAuthenticated/Action"
if xmlVal.find(finder) is not None and xmlVal.find(finder).text == 'Login':
username = xmlVal.find("UserAuthenticated/LocalUsername").text
timestamp = xmlVal.find("TimeStamp").text
xmlToWrite = '<?xml version="1.0" encoding="UTF-8"?><root><Username>' + username + '</Username><Timestamp>' + timestamp + '</Timestamp></root>\n'
xmlfile.write(xmlToWrite)
print("Writing '" + xmlToWrite + "' to logins.xml")
xmlfile.close()
此帖子:
Creating a simple XML file using python
提供了如何使用Python ElementTree编写XML文件的示例。在
最好使用库来创建XML,而不是尝试将其写成纯文本。转义特殊字符是一个原因;另一个原因是确保正确地获取开始和结束标记以及名称空间。我们看到很多人在StackOverflow上努力解析损坏的XML,这通常是因为有人错误地认为手工生成它比使用库更容易。在
相关问题 更多 >
编程相关推荐