Jython or Pyton issue-- Kindly Help me....

Peter Otten __peter__ at web.de
Wed Oct 15 09:32:37 CEST 2014


Venugopal Reddy wrote:

> Actuvally am having below XML File:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body>
> <c:RetriveByVehicleLineModelYearResponse
> xmlns:a="urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0"
> xmlns:b="urn:ford/VehicleOrder/SingleOrderEdit/v1.0"
> xmlns:c="urn:ford/interface/VehicleOrder/LegacyFeatureMapping/v2">
> <c:PortInstalledOptionFeature> <a:VehicleLineId>13001</a:VehicleLineId>
> <a:ModelYear>2014</a:ModelYear> <a:LegacyColumn>12</a:LegacyColumn>
> <a:LegacyValue>178       </a:LegacyValue>
> <a:SalesCode>W78</a:SalesCode>
> <a:MappingId>41859</a:MappingId>
> <a:MappingSeq>0</a:MappingSeq>
> <a:MappingDirection>B</a:MappingDirection>
> <a:TargetFeature>
> <a:TargetCatgegory>
> <a:Id>181</a:Id>
> <a:Name>LIGHT TRUCK WHEELBASES        </a:Name>
> <a:Type>P</a:Type>
> <a:FamilyCode>AA5</a:FamilyCode>
> </a:TargetCatgegory>
> <a:OrderFeatureId>15615</a:OrderFeatureId>
> <a:WersCode>AA5K8</a:WersCode>
> <a:OrderFeatureName>178 /4521MM WHEELBASE         </a:OrderFeatureName>
> <a:PIO>false</a:PIO>
> <a:SummaryFeature>false</a:SummaryFeature>
> </a:TargetFeature>
> <a:TargetFeature>
> <a:TargetCatgegory>
> <a:Id>181</a:Id>
> <a:Name>LIGHT TRUCK WHEELBASES        </a:Name>
> <a:Type>P</a:Type>
> <a:FamilyCode>AA5</a:FamilyCode>
> </a:TargetCatgegory>
> <a:OrderFeatureId>15615</a:OrderFeatureId>
> <a:WersCode>AA5K8_second time</a:WersCode>
> <a:OrderFeatureName>178 /4521MM WHEELBASE         </a:OrderFeatureName>
> <a:PIO>false</a:PIO>
> <a:SummaryFeature>false</a:SummaryFeature>
> </a:TargetFeature>
> </c:PortInstalledOptionFeature>
> <c:PortInstalledOptionFeature>
> <a:VehicleLineId>13001</a:VehicleLineId>
> <a:ModelYear>2014</a:ModelYear>
> <a:LegacyColumn>12</a:LegacyColumn>
> <a:LegacyValue>190       </a:LegacyValue>
> <a:SalesCode>W90</a:SalesCode>
> <a:MappingId>41860</a:MappingId>
> <a:MappingSeq>0</a:MappingSeq>
> <a:MappingDirection>B</a:MappingDirection>
> <a:TargetFeature>
> <a:TargetCatgegory>
> <a:Id>181</a:Id>
> <a:Name>LIGHT TRUCK WHEELBASES        </a:Name>
> <a:Type>P</a:Type>
> <a:FamilyCode>AA5</a:FamilyCode>
> </a:TargetCatgegory>
> <a:OrderFeatureId>15616</a:OrderFeatureId>
> <a:WersCode>AA5MA</a:WersCode>
> <a:OrderFeatureName>190 /4826MM WHEELBASE         </a:OrderFeatureName>
> <a:PIO>false</a:PIO>
> <a:SummaryFeature>false</a:SummaryFeature>
> </a:TargetFeature>
> </c:PortInstalledOptionFeature>
> </c:RetriveByVehicleLineModelYearResponse>
> </soapenv:Body>
> </soapenv:Envelope>
> ============================
> 
> My expected Output is:
> 
> 
> WersCode
> AA5K8
> AA5MA
> 
> ============== For this I have used below Code:
> 
> mport glob
> import xml.etree.ElementTree as ET
> 
> Fatfile = open('#Var_SOE_VLIS_Response_Output\\Sales_to_Wers_Code2.txt',
> 'a') try:
>    tree = ET.parse('#Var_ENG_Response_Files\\SoapResponse1.xml')
>    Fatfile.write('1111')
>    WersCodeList =
>    
tree.findall('./{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}PortInstalledOptionFeature')
>    Fatfile.write('\n2222')
>   # x = len(WersCodeList)
>   # Fatfile.write(x)
>    Fatfile.write('\n333')
>    for WersCode in WersCodeList :
>          Fatfile.write('\n444')
>          WersCode =
>          
WersCode.find('.//{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}WersCode')
>          Fatfile.write('\n') Fatfile.write(WersCode.text)
> except :
>     Fatfile.write(' \nsorry')
> Fatfile.write(' \nSuccess')
> 
> ====
> 
> But I could not able to get the WersCode List using Findall.

- The namespace is not correct
- "./" finds only direct children

Try something like

for feature in tree.findall(
        ".//{urn:ford/interface/VehicleOrder/LegacyFeatureMapping/v2}PortInstalledOptionFeature"):
    code = feature.find(
        ".//{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}WersCode")
    print(code.text)


> Please please please help on this .. am struggling sice one week sir...

... and it's all your fault because you offered a task to do for you instead 
of some code we could help you fix.




More information about the Python-list mailing list