Discussion:
Jython or Pyton issue-- Kindly Help me....
Venugopal Reddy
2014-10-13 11:39:33 UTC
Permalink
Dear All,

How to write a program for reading or parsing the XML file in Sub root Wise.

For ex:

Below XMl, I want to read/ parse first country details and here also two year tag values are there.. Here I need to read/parse first year value only measn '2008' Only..After that I need to read second country details.

Please help me .. i am struggling to get this solution..

<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<year>2009></year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
Ian Kelly
2014-10-13 15:43:24 UTC
Permalink
On Mon, Oct 13, 2014 at 5:39 AM, Venugopal Reddy
Post by Venugopal Reddy
Dear All,
How to write a program for reading or parsing the XML file in Sub root Wise.
I don't know what "Sub root Wise" is. You can find an overview of
Python's XML parsing interfaces at
https://docs.python.org/2/library/xml.html. I would recommend using
the ElementTree API unless you have a specific reason to use something
else.
Venugopal Reddy
2014-10-14 09:46:44 UTC
Permalink
Ok, I will explain my problem in details :

I have below XML:

<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<year>2009></year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
Countryname Rank Year gdppc
Liechtenstein 1 2008 141100
Singapore 4 2011 59900
Panama 68 2011 13600

Please help how to do it..
Post by Ian Kelly
On Mon, Oct 13, 2014 at 5:39 AM, Venugopal Reddy
Post by Venugopal Reddy
Dear All,
How to write a program for reading or parsing the XML file in Sub root Wise.
I don't know what "Sub root Wise" is. You can find an overview of
Python's XML parsing interfaces at
https://docs.python.org/2/library/xml.html. I would recommend using
the ElementTree API unless you have a specific reason to use something
else.
Peter Otten
2014-10-14 10:43:51 UTC
Permalink
Post by Venugopal Reddy
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<year>2009></year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
Countryname Rank Year gdppc
Liechtenstein 1 2008 141100
Singapore 4 2011 59900
Panama 68 2011 13600
Please help how to do it..
Read up on elementtree:

http://pymotw.com/2/xml/etree/ElementTree/parse.html

You can load the data from the file with parse(), get the countries with
findall(), the name with country_node.attrib["name"], and rank, year and
gdppc with country_node.find("rank").text etc.

If you run into problems come back with some code of yours.
Venugopal Reddy
2014-10-15 05:42:07 UTC
Permalink
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.

Please please please help on this .. am struggling sice one week sir...
Post by Peter Otten
Post by Venugopal Reddy
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<year>2009></year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
Countryname Rank Year gdppc
Liechtenstein 1 2008 141100
Singapore 4 2011 59900
Panama 68 2011 13600
Please help how to do it..
http://pymotw.com/2/xml/etree/ElementTree/parse.html
You can load the data from the file with parse(), get the countries with
findall(), the name with country_node.attrib["name"], and rank, year and
gdppc with country_node.find("rank").text etc.
If you run into problems come back with some code of yours.
Peter Otten
2014-10-15 07:32:37 UTC
Permalink
Post by Venugopal Reddy
<?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>
============================
WersCode
AA5K8
AA5MA
mport glob
import xml.etree.ElementTree as ET
Fatfile = open('#Var_SOE_VLIS_Response_Output\\Sales_to_Wers_Code2.txt',
tree = ET.parse('#Var_ENG_Response_Files\\SoapResponse1.xml')
Fatfile.write('1111')
WersCodeList =
tree.findall('./{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}PortInstalledOptionFeature')
Post by Venugopal Reddy
Fatfile.write('\n2222')
# x = len(WersCodeList)
# Fatfile.write(x)
Fatfile.write('\n333')
Fatfile.write('\n444')
WersCode =
WersCode.find('.//{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}WersCode')
Post by Venugopal Reddy
Fatfile.write('\n') Fatfile.write(WersCode.text)
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)
Post by Venugopal Reddy
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.
Venugopal Reddy
2014-10-15 08:35:45 UTC
Permalink
Thanks for Help Sir,

Am using " for feature in tree.findall(
".//{urn:ford/interface/VehicleOrder/LegacyFeatureMapping/v2}PortInstalledOptionFeature"): ) "

Please sir help me

Here also this findall Method is not return any list values.
Post by Venugopal Reddy
Post by Venugopal Reddy
<?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>
============================
WersCode
AA5K8
AA5MA
mport glob
import xml.etree.ElementTree as ET
Fatfile = open('#Var_SOE_VLIS_Response_Output\\Sales_to_Wers_Code2.txt',
tree = ET.parse('#Var_ENG_Response_Files\\SoapResponse1.xml')
Fatfile.write('1111')
WersCodeList =
tree.findall('./{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}PortInstalledOptionFeature')
Post by Venugopal Reddy
Fatfile.write('\n2222')
# x = len(WersCodeList)
# Fatfile.write(x)
Fatfile.write('\n333')
Fatfile.write('\n444')
WersCode =
WersCode.find('.//{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}WersCode')
Post by Venugopal Reddy
Fatfile.write('\n') Fatfile.write(WersCode.text)
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(
code = feature.find(
".//{urn:ford/VehicleOrder/LegacyFeatureMapping/v2.0}WersCode")
print(code.text)
Post by Venugopal Reddy
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.
Peter Otten
2014-10-15 09:04:12 UTC
Permalink
Post by Venugopal Reddy
Thanks for Help Sir,
Am using " for feature in tree.findall(
) "
Please sir help me
Here also this findall Method is not return any list values.
OK, I tried it:

$ cat xml_werscode.py
from xml.etree import ElementTree as ET

data = """<?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>
"""


tree = ET.fromstring(data)
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)
$ python xml_werscode.py
AA5K8
AA5MA

As you can see I do get the expected output. I am sorry I have no idea what
you might be doing wrong.

Loading...