使用带if条件的import minidom解析xml

2024-10-03 06:28:07 发布

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

 <Game:quit>

           <Game:AnimalSet AnimalSet="Name" />
           <Game:Value Value="Lion" />

       </Game:quit>
       <Game:quit>

           <Game:AnimalSet AnimalSet="Name" />
           <Game:Value Value="Tiger" />

       </Game:quit>
       <Game:quit>

           <Game:AnimalSet AnimalSet="Name" />
           <Game:Value Value="Leopard" />

       </Game:quit>
       <Game:quit>

           <Game:DimensionSet AnimalSet="Name" />
           <Game:Value Value="Elephant" />

       </Game:quit>

   <Game:quit>

          <Game:AnimalSet AnimalSet="Place" />
          <Game:Value Value="USA" />

这是我的示例.xml我主要关心的。我想用from的方式解析这个xmlxml.dom文件import minidom导入库,如果条件和AnimalSet值为“Name”,它将存储/附加其值,即“狮子”、“老虎”、“豹子”和“大象”。elif如果AnimalSet是“Place”,它应该将“USA”存储/追加到另一个列表中。在

我只是在开始的时候被困在代码上,所以如果有人帮助我开始的话,我会非常感激。在

有什么帮助吗?如果还有什么不清楚的地方,请提出问题。谢谢


Tags: namegame示例valueplacexmlquittiger
1条回答
网友
1楼 · 发布于 2024-10-03 06:28:07

这看起来像是XPath的一个任务,因此作为minidom的替代,您可以使用ElementTree,它的findall方法可以找到具有Value属性的所有元素。在

import xml.etree.ElementTree as ET

doc = ET.parse(path_to_xml_file)
values = doc.findall('.//*[@Value]')
print [value.get('Value') for value in values]

对于python2.6.6,ElementTree无法查找属性,因此必须使用其他方法。文件开头必须有一个xmlns:Game伪属性;将其值复制到xmlns变量中,然后尝试以下操作。在

^{pr2}$

相关问题 更多 >