XML Datei analysieren
Verfasst: Mittwoch 16. Oktober 2024, 21:14
Hallo,
gegeben sei die folgende XML Datei:
Ich möchte den Inhalt der XML analysieren und mit einer Standardvorgabe vergleichen. Speziell interessieren mich erstmal die Tags <name> , <MaxLength>, <numeric> und <AlphaNumeic>.
Als Schwierigkeit kommt hinzu, dass auf dem System, wo das Skript laufen soll, das Modul pandas nur in der Version 0.20 verfügbar ist. Die Methode read_xml() steht also nicht zur Verfügung. Die installation weiterer Module ist auf dem System nicht möglich.
Ich stehe an dem Punkt, dass ich die XML in eine Liste eingelesen habe.
Wie extrahiere ich jetzt alle <table> Abschnitte aus der Liste?
gegeben sei die folgende XML Datei:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<DataSet>
<Version>2024</Version>
<DataSupplier>
<Name>FirmaXY</Name>
<Location>LocationXY</Location>
<Comment>Stand_30.09.2023</Comment>
</DataSupplier>
<Media>
<Name>Datenträger</Name>
<Table>
<URL>programminfo.csv</URL>
<Name>Programminfo</Name>
<Description>Informationen zum Softwareprogramm</Description>
<DecimalSymbol>,</DecimalSymbol>
<DigitGroupingSymbol>.</DigitGroupingSymbol>
<VariableLength>
<VariableColumn>
<Name>Softwarehersteller</Name>
<Description>Softwarehersteller</Description>
<AlphaNumeric/>
<MaxLength>60</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>Softwarebezeichnung</Name>
<Description>Name der Software</Description>
<AlphaNumeric/>
<MaxLength>60</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>Version</Name>
<Description>Versionsnummer</Description>
<AlphaNumeric/>
<MaxLength>60</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>Branche</Name>
<Description>Anwendungsgebiet</Description>
<AlphaNumeric/>
<MaxLength>60</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>Anschrift</Name>
<Description>Anschrift Hersteller</Description>
<AlphaNumeric/>
<MaxLength>60</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>Ort</Name>
<Description>Ort Hersteller</Description>
<AlphaNumeric/>
<MaxLength>60</MaxLength>
</VariableColumn>
</VariableLength>
</Table>
<Table>
<URL>stammdaten.csv</URL>
<Name>Kundenstammdaten</Name>
<Description>Angaben zum Kunde</Description>
<DecimalSymbol>,</DecimalSymbol>
<DigitGroupingSymbol>.</DigitGroupingSymbol>
<VariableLength>
<VariableColumn>
<Name>KU_NR</Name>
<Description>Kundennummer</Description>
<AlphaNumeric/>
<MaxLength>14</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>KU_Name</Name>
<Description>Name des Kunden</Description>
<AlphaNumeric/>
<MaxLength>40</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>KU_Strasse_Nr</Name>
<Description>Straße und Hausnummer des Kunden</Description>
<AlphaNumeric/>
<MaxLength>40</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>KU_Plz</Name>
<Description>PLZ des Kunden</Description>
<AlphaNumeric/>
<MaxLength>40</MaxLength>
</VariableColumn>
</VariableLength>
</Table>
<Table>
<URL>lieferantenstammdaten.csv</URL>
<Name>Lieferantenstammdaten</Name>
<Description>Angaben zum Lieferanten</Description>
<DecimalSymbol>,</DecimalSymbol>
<DigitGroupingSymbol>.</DigitGroupingSymbol>
<VariableLength>
<VariableColumn>
<Name>Li_Jahr</Name>
<Description>Lieferjahr</Description>
<Numeric/>
</VariableColumn>
<VariableColumn>
<Name>Li_Mon</Name>
<Description>Liefermonat</Description>
<Numeric/>
</VariableColumn>
<VariableColumn>
<Name>Li_Zahl</Name>
<Description>Lieferzähler</Description>
<Numeric/>
</VariableColumn>
<VariableColumn>
<Name>Li_Nr</Name>
<Description>Liefernummer</Description>
<AlphaNumeric/>
<MaxLength>40</MaxLength>
</VariableColumn>
<VariableColumn>
<Name>ID_Nr</Name>
<Description>Identifikationsnummer</Description>
<AlphaNumeric/>
<MaxLength>11</MaxLength>
</VariableColumn>
</VariableLength>
</Table>
...
</Media>
</DataSet>
Als Schwierigkeit kommt hinzu, dass auf dem System, wo das Skript laufen soll, das Modul pandas nur in der Version 0.20 verfügbar ist. Die Methode read_xml() steht also nicht zur Verfügung. Die installation weiterer Module ist auf dem System nicht möglich.
Ich stehe an dem Punkt, dass ich die XML in eine Liste eingelesen habe.
Code: Alles auswählen
datei = open("index.xml").readlines()
datei = [l.strip() for l in datei]