【问题标题】:XML parsing for nested tags using python使用python对嵌套标签进行XML解析
【发布时间】:2014-05-12 15:53:51
【问题描述】:

我需要有关如何解析带有嵌套标签的 xml 文件的帮助,将用户输入作为特定标签的属性值。

例如:

如果 xml 代码有 12 个映射,我们想选择下面的映射名称“m_IF1_TD_SALESORDER_STG_PR4_VBPA_BUSINESS_PARTNER”作为用户输入,从而打印特定的映射详细信息。

 <MAPPING NAME="m_IF1_TD_SALESORDER_STG_PR4_VBPA_BUSINESS_PARTNER" DESCRIPTION="Data Mapping for loading Sales Order Business Partners from the staging database for PR4." OBJECTVERSION="1" ISVALID="YES" VERSIONNUMBER="1">
                <TRANSFORMATION NAME="sq_STG_PR4_VBPA" DESCRIPTION="" TYPE="Source Qualifier" OBJECTVERSION="1" REUSABLE="NO" VERSIONNUMBER="1">
                    <TRANSFORMFIELD NAME="MANDT" DESCRIPTION="" DATATYPE="string" PORTTYPE="INPUT/OUTPUT" PRECISION="3" SCALE="0" PICTURETEXT="" DEFAULTVALUE="" EXPRESSION="MANDT" EXPRESSIONTYPE="GENERAL"/>
                    <TRANSFORMFIELD NAME="VBELN" DESCRIPTION="" DATATYPE="string" PORTTYPE="INPUT/OUTPUT" PRECISION="10" SCALE="0" PICTURETEXT="" DEFAULTVALUE="" EXPRESSION="VBELN" EXPRESSIONTYPE="GENERAL"/>
                    <TRANSFORMFIELD NAME="POSNR" DESCRIPTION="" DATATYPE="decimal" PORTTYPE="INPUT/OUTPUT" PRECISION="6" SCALE="0" PICTURETEXT="" DEFAULTVALUE="" EXPRESSION="POSNR" EXPRESSIONTYPE="GENERAL"/>
                    <TRANSFORMFIELD NAME="PARVW" DESCRIPTION="" DATATYPE="string" PORTTYPE="INPUT/OUTPUT" PRECISION="2" SCALE="0" PICTURETEXT="" DEFAULTVALUE="" EXPRESSION="PARVW" EXPRESSIONTYPE="GENERAL"/>

【问题讨论】:

    标签: python-3.x xml-parsing nested-attributes


    【解决方案1】:

    我建议使用XML ElementTree module of python

    使用起来非常简单。例如:

    import xml.etree.ElementTree as ET
    tree = ET.parse('/filename.xml')
    root = tree.getroot()
    for subchild in root.findall('subchildName'):
        print(subchild.get('subchildAttribute')
    

    【讨论】:

    • Hy...谢谢,但这不是我们在我的示例代码中的确切要求,我们在每个映射中有 12 个映射和 20 多个转换,用户输入应该是转换名称,它应该显示所有该转换名称中的属性和子元素。
    猜你喜欢
    • 2012-05-04
    • 2020-05-04
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2018-11-22
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多