【问题标题】:How can i retrieve only specific fields from xml in python?如何在 python 中仅从 xml 中检索特定字段?
【发布时间】:2021-08-26 10:20:37
【问题描述】:

如何在 python 中仅从 xml 中检索“Are”

< parameter name="Job Name" source="constant" updatable="True"> HELLO </ parameter>
< parameter name="GUIName" source="constant" updatable="True"> How </ parameter>
< parameter name="Task Name" source="constant" updatable="True"> Are </ parameter>
< parameter name="No Name" source="constant" updatable="True"> You </ parameter>

这是给所有元素

items=mydoc.getElementsByTagName('parameter name')
for i in items:
    OP=i.attributes['name'].value

【问题讨论】:

  • 请解释一下你想做什么 - 不清楚。

标签: python python-3.x python-requests


【解决方案1】:
items=mydoc.getElementsByTagName('parameter name') 
for i in items:
    if ( OP:=i.attributes['name'].value == 'Are'):
    # do your stuff ('Are' is assigned to OP)
    

【讨论】:

    【解决方案2】:

    如下所示 - 下面的代码获取具有 text == Are 的元素的属性

    import xml.etree.ElementTree as ET
    
    xml = '''<r><parameter name="Job Name" source="constant" updatable="True"> HELLO </parameter> 
             <parameter name="GUIName" source="constant" updatable="True"> How </parameter> 
             <parameter name="Task Name" source="constant" updatable="True"> Are </parameter>
             <parameter name="No Name" source="constant" updatable="True"> You </parameter></r>'''
    root = ET.fromstring(xml)
    are_list = [p for p in root.findall('.//parameter') if p.text.strip() == 'Are']
    for are in are_list:
        print(are.attrib)
    

    输出

    {'name': 'Task Name', 'source': 'constant', 'updatable': 'True'}
    

    【讨论】:

      猜你喜欢
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 2014-10-15
      • 1970-01-01
      相关资源
      最近更新 更多