Die Antworten wurden Hunderte von Malen gegeben, aber ich konnte immer noch keine Lösung finden. Ich habe die offizielle Dokumentation und Antworten auf stackoverflow ausprobiert.Parsing XML in Python mit ElementTree
Ich habe, dass die XML-Struktur:
<?xml version="1.0" encoding="windows-1252"?>
<OpenShipments xmlns="x-schema:OpenShipments.xdr">
<OpenShipment ProcessStatus="Processed" ShipmentOption="">
<ShipTo>
<CompanyOrName><![CDATA[xxx]]></CompanyOrName>
<Attention><![CDATA[xxx]]></Attention>
<Address1><![CDATA[xxx]]></Address1>
<PostalCode><![CDATA[xxx]]></PostalCode>
<CityOrTown><![CDATA[xxx]]></CityOrTown>
<Telephone><![CDATA[xxx]]></Telephone>
<EmailAddress><![CDATA[xxx]]></EmailAddress>
<CountryTerritory><![CDATA[xxx]]></CountryTerritory>
</ShipTo>
<ShipmentInformation>
<ServiceType>ST</ServiceType>
<PackageType>CP</PackageType>
<ShipmentActualWeight><![CDATA[XXX]]></ShipmentActualWeight>
<QVNOption>
<QVNRecipientAndNotificationTypes>
<CompanyOrName/>
<ContactName/>
<EMailAddress/>
<LabelCreation/>
</QVNRecipientAndNotificationTypes>
<ShipFromCompanyOrName>xxx</ShipFromCompanyOrName>
</QVNOption>
</ShipmentInformation>
<ProcessMessage>
<ShipmentRates>
<ShipmentCharges>
<Rate>
<Published>XXX</Published>
<Negotiated>XXX</Negotiated>
</Rate>
</ShipmentCharges>
<ShipperCharges>
<Rate>
<Published>XXX</Published>
<Negotiated>XXX</Negotiated>
</Rate>
</ShipperCharges>
<ReceiverCharges>
<Rate>
<Published>0,00</Published>
<Negotiated>0,00</Negotiated>
</Rate>
</ReceiverCharges>
<QVN>
<Rate>
<Published>0,00</Published>
<Negotiated>0,00</Negotiated>
</Rate>
</QVN>
<PackageRates>
<PackageRate>
<TrackingNumber>TRACKING NUMBER</TrackingNumber>
<PackageCharges>
<Rate>
<Published>0,00</Published>
<Negotiated>0,00</Negotiated>
</Rate>
</PackageCharges>
<Delivery_AreaSurcharge>
<Rate>
<Published>0,00</Published>
<Negotiated>0,00</Negotiated>
</Rate>
</Delivery_AreaSurcharge>
</PackageRate>
</PackageRates>
</ShipmentRates>
<TrackingNumbers>
<TrackingNumber>TRACKING NUMBER</TrackingNumber>
</TrackingNumbers>
<ShipID>XXX</ShipID>
<ImportID></ImportID>
<Reference1></Reference1>
<Reference2></Reference2>
<ShipmentID></ShipmentID>
<PRONumber></PRONumber>
</ProcessMessage>
</OpenShipment>
</OpenShipments>
Eine Notwendigkeit, "Tracking" Wert zu erhalten. Ich versuchte findall()
und find()
Funktionen, aber ohne Ergebnis.
ElementTree musste den Zugriff auf XML-Elemente vereinfachen, aber das erwies sich als zu schwierig für mich.
Das ist, was ich brauche:
, die Sie so etwas wie geben! – user3041764
Keine Sorge, Sie könnten auch 'xm.findall ('.// {x-schema: OpenShipments.xdr} TrackingNumber')' aber das würde schön werden, wenn Sie mehrere Knoten in Ihrer Xpath-Abfrage verwenden würden –
warum einfach 'findall ('TrackingNumber') 'funktioniert nicht? – user3041764