2014-05-12 33 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