Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1020to1024
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

XML-Datei parsen?

XML-Datei parsen?
03.11.2008 17:31:17
Thomas
Hallo Leute,
ich möchte Daten in Exceltabellen per Makro korrigieren. ("Suchen und Ersetzen")
Die notwendigen Daten stehen in einer XML-Datei.
Dabei habe ich eine Bezeichnung (z.B. Bezeichnung_CAD) und suche
die entsprechende korrigierte Bezeichnung (z.B. Bezeichnung_BED).
Bisher gehe ich so vor:
  • KOMPLETTE XML-Datei einlesen:
    - Open strArtikelliste For Input As #...
    - Do While Not EOF(...)
    ...

  • ALLE Daten in mehreren Arrays speichern:
    - alle Identnummern: 1 Array
    - alle Bezeichnung_CAD: 1 Array
    - alle Bezeichnung_BED: 1 Array
    ...

  • Suche nach einer korrigierten Bezeichnung:
    - alle Elemente des 1. Arrays nach Begriff durchsuchen
    - Position der Fundstelle speichern
    - anhand dieser Position im 2. Array die Korrektur bestimmen

  • Das funktioniert zwar so weit, ist aber sicher nur suboptimal gelöst.
    Mein Hauptproblem:
  • 1. Einige Tags (z.B. "IdentNr") kommen auf mehreren "Ebenen" der XML-Datei vor.
    - Jeder Lieferant hat eine IdentNr
    - Jedes Produkt eines Lieferanten hat eine IdentNr
    -> Ich kann also nicht einfach den Text der XML-Datei nach IdentNr durchsuchen,
    da nicht sicher ist, ob ich mich in einem Lieferanten oder Artikel befinde.


  • Weitere kleinere Probleme:
  • 2. Das Makro zum Einlesen der XML-Datei ist sehr kompliziert geworden.

  • 3. Das Makro ist nicht "allgemeingültig".
    - Sollte sich also die XML-Datei später einmal ändern, müsste ich auch das Makro neu schreiben.

  • 4. Direkter Zugriff über einen Parser o.ä. wäre sicher schneller.

  • Ich habe versucht mit "Microsoft.XMLDOM" u. a. weiter zu kommen. Bisher leider erfolglos.
    Vielleich hat jemand ein paar Tipps?
    Im Anhang ist ein kleiner Ausschnitt der XML-Daten als Text.
    
    56474.txt
    


    Danke im Voraus
    Thomas

    2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Stimmt denn die Struktur der XML-Datei ?
    03.11.2008 17:52:00
    NoNet
    Hallo Thomas,
    ich kann Dir zwar nicht adhoc helfen, aber zumindest den Tip : Überprüfe bitte mal die XML-Struktur der Datei.
    Ich habe diese eben in Excel importiert und es scheint, als fehle ein Teil (siehe Baumstruktur im Aufgabenbereich rechts) :
    In der Liste hingegen werden mehrere Datensätze angezeigt !
    Weiterhing habe ich nicht verstanden, WAS Du über die XML WO durch WELCHEN Wert der XML-Datei ersetzen möchtest. Klingt ganz schön kompliziert....
    Gruß, NoNet
    AW: Stimmt denn die Struktur der XML-Datei ?
    04.11.2008 07:40:00
    Thomas
    Hallo,
    ja die Struktur stimmt natürlich.
    Die gesamte xml-Datei ist aber etwa 50 KB groß, weshalb ich nur beispielhaft einige Daten in die Textdatei übernommen habe.
    Zur Sicherheit validiere ich die XML-Datei bei jedem Start des Makros mit "xmlint.exe".
    Anwendungsbeispiel:
  • Ich korrigiere eine Ersatzteilliste (XLS).

  • Die enthaltenen Artikel vergleiche ich über die Artikelnummer mit der XML-Datei.

  • - Diese habe ich selbst angelegt, da immer wieder gleiche Fehler zu korrigieren sind.
    - Übertragungsfehler, überflüssiger Text ...
  • Wenn in der XML-Datei diese Artikelnummer enthalten ist, lese ich u.a. folgendes aus:

  • - "Bezeichnung_CAD" z.B.: "SchalldÌmpfer"
    - "Bezeichnung_BED" z.B.: "Schalldämpfer"
  • Steht nun in der Ersatzteilliste (XLS) für den Artikel die falsche "Bezeichnung_CAD", korrigiere ich sie.

  • - Ersetze also "Bezeichnung_CAD" durch die korrekte "Bezeichnung_BED"
    Den direkten Zugriff auf die XML-Datei möchte ich deshalb haben,
    weil in einem untergeordneten Teil der Struktur jeden Artikels gleich die Übersetzungen in mehrere Sprachen stehen.
    Gruß
    Thomas
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige