Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Wie kann ich in VBA ein XML auslesen und daraus ein multidimensionales assoziatives Array erstellen?

Frage Entwicklung VB for Applications

Mitglied: Acider

Acider (Level 1) - Jetzt verbinden

25.08.2011 um 13:57 Uhr, 4176 Aufrufe

Ich soll ein XML-File auslesen, verarbeiten und das Ergebnis in Word anzeigen. Leider sind alle wichtigen Werte in den Attributen der Node gespeichert. Das XML-File hat immer eine unterschiedliche Anzahl an Nodes und darin enthaltenen Attribute. Wie bekomme ich diese in eine angenehme Datenstruktur?

Hallo Freunde,

Mein XML sieht grob so aus:
01.
<studiengang deStgTxt="Economics and Business Administration" deAbschlTxt="Bachelor" nachname="Musterfrau" vorname="Sandra"> 
02.
<pruefungOnTop pnr="111" pnote="100" deTxt="Einführung in die Wirtschaftswissenschaft" pdatum="22.02.2008" /> 
03.
<pruefungOnTop pnr="8999" pnote="230" deTxt="Bachelorarbeit" pdatum="25.01.2011" /> 
04.
<kontoOnTop pnr="100" deTxt="Pflichtmodule"> 
05.
<konto pnr="110" pnote="330" deTxt="Einführung in die Wirtschaftswissenschaft" dePstatus="bestanden"> 
06.
<pruefung pnr="111" pnote="330" deTxt="Einführung in die Wirtschaftswissenschaft" pordnr="18079" dePstatus="bestanden"  ppruefer="Musterprof" pdatum="09.04.2008"/> 
07.
</konto>
Es geht um die Prüfungen, die Musterfrau gemacht hat. Diese sollen in einen Word Zwischenbericht und oder Zeugnis eingebunden werden.

Ich kann die XML-File auslesen und auf die Nodes zugreifen. Aber die werde sind alle in den Attributen
Wenn ich also den wert "Nachname" auslesen will müsste ich jedes mal über alle Attribute dieser Node iterieren und abfragen ob es sich beim Attributnamen um "nachname" handelt.
Leider befindet sich die Attribute selten an der gleichen stelle so das ich mit .Item(1) oder ähnliches arbeiten könnte.

Meine Idee wäre es einmalig die XML-File zu durchlaufen und dabei ein mehrdimensionales Assoziatives Array zu bilden so dass ich mit xmlDoc.("studiengang")("nachname") direkt auf den Wert zugreifen könnte.
Mit dem Datentyp Dictionary oder Collection geht das leider nicht.

Habt Ihr vllt eine Idee wie man das Problem elegant lösen könnte? Gibt es evtl eine Datenstruktur die ich nutzen könnte? Soll ich selber eine anlegen und wenn ja wie?

Vielen Dank im Voraus

Viele Grüße
Acider
Ähnliche Inhalte
Microsoft Office
gelöst VBA zum auslesen von einem Zellbereich Excel (1)

Frage von schwalbepilot zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel VBA Datein auslesen (8)

Frage von schwalbepilot zum Thema Microsoft Office ...

VB for Applications
gelöst Mehrere Charts per VBA erstellen lassen, Titel wird nicht angezeigt

Frage von Aximand zum Thema VB for Applications ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Batch & Shell
Skripterstellung Lehrling (22)

Frage von 133119 zum Thema Batch & Shell ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...

Exchange Server
Microsoft Exchange Weiterleitung mit anderer primären E-Mail Adresse (14)

Frage von Rene12345 zum Thema Exchange Server ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

Frage von IceAge zum Thema LAN, WAN, Wireless ...