使用 Python 中的嵌入属性解析 XML

马里奥

我试图获取 XML 的每一行或特定行的值,但我试图解析的 XML 的格式与我见过的格式不同,我见过的关闭是 xml.etree.ElementTree ( https:// docs.python.org/2/library/xml.etree.elementtree.html),但仍然无法到达那里。

例如,我想获取“例行报告”的“序列号”键的值作为 Ident
任何帮助都会受到赞赏。

<?xml version="1.0" encoding="utf-8"?>
<NGKCONFIG Report="ivory_2019-10-08_08h32m26s">
  <NGKNODES Format="1" Version="3">
    <NGKNODE Ident="Default" Key="DocLanguage" Value="en" />
    <NGKNODE Ident="Default" Key="Machine" Value="Pane X234" />
    <NGKNODE Ident="Default" Key="Look" Value="Mirr2012" />
    <NGKNODE Ident="Default" Key="MachineGroup" Value="Mirr1743" />
    <NGKNODE Ident="DailyReport" Key="Owner" Value="Milot" />
    <NGKNODE Ident="RoutineReport" Key="Owner" Value="Milot" />
    <NGKNODE Ident="BackupReport" Key="Owner" Value="Milot" />
    <NGKNODE Ident="RoutineReport" Key="NextReportAt" Value="2020-06-26T00:00:00-04:00" />
    <NGKNODE Ident="BackupReport" Key="NextReportAt" Value="2020-06-26T00:00:00-04:00" />
    <NGKNODE Ident="BackupReport" Key="SequenceNumber" Value="105" />
    <NGKNODE Ident="BackupReport" Key="LastReportAt" Value="2020-06-25T00:00:00-04:00" />
    <NGKNODE Ident="RoutineReport" Key="SequenceNumber" Value="199" />
    <NGKNODE Ident="RoutineReport" Key="LastReportAt" Value="2020-06-25T01:44:46-04:00" />
  </NGKNODES>
</NGKCONFIG>
马里奥

解决方案是:

导入 xml.dom.minidom

定义主():

doc = xml.dom.minidom.parse("NgkConfig.xml") 
nodes = doc.getElementsByTagName("NGKNODE")
for ngknode in nodes:
  if ngknode.getAttribute('Key') == 'NextReportAt':
    if ngknode.getAttribute('Ident') == 'RoutineReport':
      ident = (ngknode.getAttribute('Ident'))  
      value = (ngknode.getAttribute('Value'))
      message= ('Next {} will be {}'.format(ident,value))
      print(message)

if name == " main ": main();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章