如何手动解析XML数据(不使用xml.etree)

时间:2016-12-09 18:30:16

标签: python xml python-3.x parsing tags

我一直在使用文本文件中的XML数据。只是一些一般的东西。

我使用xml.etree及其命令,但现在我想知道如何手动删除标记并将所有数据写入新文件。

我认为需要大量的str.split s或循环来摆脱标记。

我现在要启动它(不工作,只复制数据):

def summarizeData(fileName):
    readFile = open(fileName, "r").read()
    newFile = input("")
    writeFile = open(newFile, "w")
    with open(fileName, "r") as file:
        for tags in file:
            Xtags = tags.split('>')[1].split('<')[0]
    writeFile.write(readFile)
    writeFile.close

到目前为止,它只是复制数据,包括标签。我认为拆分标签可以解决问题,但似乎没有做任何事情。可以手动完成,还是必须使用xml.etree?

1 个答案:

答案 0 :(得分:2)

您没有看到任何更改的原因是您只是将您从fileName读取的数据写入此行中的readFile

    readFile = open(fileName, "r").read()

...直接回到writeFile这一行:

    writeFile.write(readFile)

你们之间没有任何事情(Xtags等)对readFile有任何影响,所以它会按原样写回来。

除了这个问题,您可以通过一些工作来解决这个问题......解析XML远不如您想象的那么简单。你必须考虑跨越多行的标签,可以出现在属性值中的尖括号,评论和CDATA部分,以及许多其他微妙的问题。

总结:使用真正的XML解析器,如xml.etree