嗨@ all所以我有一个~1MB的大XML文件,主要包含日志内容。我想用Python解析它以提取特定数据(如错误代码等),现在只需将“提取的”数据打印到控制台。
XML-FIle看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Report blablabla...>
<Service>
<Name>Reportlogger</Name>
<Version>1.00.000</Version>
</Service>
<PcInformation>
<PcNumber>001-1</PcNumber> //Information to extract ("001-1")
</PcInformation>
. //Dots mean the length between two
. //Tags is variable, so you can't
. //watch out for a specific line
.
<Components>
<Component>
<Name>Chip1</Name> //Information to extract ("Chip1")
.
.
.
</Component>
<Component> //unfortunately the tag always called
<Name>Chip23</Name> //<Component> and has no counter
<SWInformation> // like <Component1>, <Component2>...
<Version>
<VersionValue>00/11/01</VersionValue> //Information to
</Version> //extract ("00/11/01")
</SWInformation>
</Component>
.
.
.
</Components>
</Report>
我尝试使用BeautifulSoup和lxml提取值,但没有结果或错误消息......
如果有人能提供一些关于如何导航或迭代这样的xml的信息,我会非常感激。我没有找到解决方案,因为它是一个相当复杂的XML(对我而言);
我的Python代码如下所示:(它实际上只是打开我的XML文件)
import sys
import re
fname=r"C:\temp\PythonData\test.xml"
xmlFile = open(fname , 'r', encoding='utf-8')
sc=xmlFile.read()
我想到了创建XML ElementTree对象然后找到我需要的值。我不知道怎么做,因为有多个标签(所以我不能定义一个特定的标签并从中提取数据)
我的想法是检查组件\名称值,然后在其下提取\ Component \ SWInformation \ VersionValue(我要提取的那个)。总而言之,我对python很陌生,所以代码示例非常受欢迎。
谢谢。