2014-05-12 111 views
0

我需要帮助,了解如何使用嵌套标记解析xml文件,并将用户输入作为特定标记的属性值。使用python进行嵌套标记的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"/> 

回答

0

我建议使用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') 
+0

海兰...佳日感谢,但这个不是我们在我的样本代码的确切需求,我们有12个映射,每个映射内20+的转换,用户输入要转换的名称和它应该显示该转换名称中的所有属性和子元素。 – user3514648