ElementTree分析“&”时出错

2024-04-26 10:10:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在分析包含&字符的日志文件时遇到问题,但仅当它后面没有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()

Tags: pathtextimportfinder错误lineauditxml
1条回答
网友
1楼 · 发布于 2024-04-26 10:10:49

此帖子:

Creating a simple XML file using python

提供了如何使用Python ElementTree编写XML文件的示例。在

最好使用库来创建XML,而不是尝试将其写成纯文本。转义特殊字符是一个原因;另一个原因是确保正确地获取开始和结束标记以及名称空间。我们看到很多人在StackOverflow上努力解析损坏的XML,这通常是因为有人错误地认为手工生成它比使用库更容易。在

相关问题 更多 >