我希望使用python解析“ .xml”文件。该文件的格式如下:
<root><dm_log_packet>
<pair key ="type_id">LTE_PHY_Serv_Cell_Measurement</pair>
</dm_log_packet>
</root>
我尝试使用ElementTree解析它,但失败了。
这是我的代码:
from xml.etree import ElementTree
class Log:
def __init__(self,type_id=None):
self.type_id=type_id
def __str__(self):
return self.type_id
roota=ElementTree.parse("file.xml")
log_file = roota.findall("dm_log_packet")
lo = []
for aa in log_file:
log = Log()
log.type_id = aa.find("type_id").text
lo.append(log)
我希望解析每对,但是不能像我有<type_id>...</type_id>
对那样解析。
答案 0 :(得分:0)
答案 1 :(得分:0)
.find()
和.findall()
期望XPath作为参数,像"dm_log_packet"
这样的普通字符串将找不到任何内容。
from xml.etree import ElementTree
class Log:
def __init__(self, type_id=None):
self.type_id=type_id
def __str__(self):
return self.type_id
tree = ElementTree.parse("file.xml")
lo = []
for dm_log_packet in tree.findall(".//dm_log_packet"):
pair = dm_log_packet.find("./pair/[@key='type_id']")
if pair is not None:
lo.append(Log(pair.text))
请注意,dm_log_packet.find("./pair/[@key='type_id']")
在没有None
时将返回<pair key="type_id">
,因此需要额外的支票。