Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

XML-Datei mit VBA bearbeiten

Forumthread: XML-Datei mit VBA bearbeiten

XML-Datei mit VBA bearbeiten
22.08.2005 17:15:33
Baldur
Hallo Leute,
ich habe eine Datei in Form einer XML-Struktur, allerdings mit dem Dokumententyp TS. Diese Datei will ich jetzt bearbeiten, genauer gesagt einige Kind-Elemente löschen und neue einfügen.
Bisher verwende ich folgenden Befehl (der allerdings nicht funktioniert):
Dim xml_TSDoc As MSXML2.DOMDocument
Set xml_TSDoc = New MSXML2.DOMDocument
xml_TSDoc.loadXML ("c:\Datei.ts")
Auch danach werden keine Kind-Elemente von erkannt xml_TSDoc erkannt.
Ich hoffe, es kann mir jemand helfen.
LG Baldur
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Fehler beim Öffnen der XML-Datei (DTD unbekannt)
23.08.2005 11:49:09
Baldur
Hi Leute,
ich habe mittlerweile festgestellt, dass wohl das Schema der XML-(bzw. TS-)Datei nicht deklariert ist.
Hier noch der Aufbau meiner Datei:


Name1

Text1
Text2


Text1
Text2



......


Die genaue Meldung lautet: "Das Element "TS" wird verwendet, aber es ist im DTD/Schema nicht deklariert."
Wie kann man so eine Deklaration durchführen?
LG und Danke im Voraus.
Baldur
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

XML-Datei mit VBA bearbeiten


Schritt-für-Schritt-Anleitung

Um eine XML-Datei mit VBA zu bearbeiten, kannst du folgende Schritte ausführen:

  1. Vorbereitung: Stelle sicher, dass die Microsoft XML-Bibliothek in deinem Excel aktiviert ist. Gehe dazu auf Extras > Verweise und aktiviere Microsoft XML, v6.0 (oder eine andere Version).

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx) und wähle Einfügen > Modul.

  4. Code für das Laden der XML-Datei: Verwende den folgenden Code, um die XML-Datei zu laden:

    Dim xml_TSDoc As MSXML2.DOMDocument
    Set xml_TSDoc = New MSXML2.DOMDocument
    
    ' DTD-Datei öffnen
    xml_TSDoc.async = False
    If xml_TSDoc.Load("C:\Datei.ts") Then
       MsgBox "XML-Datei erfolgreich geladen!"
    Else
       MsgBox "Fehler beim Laden der XML-Datei: " & xml_TSDoc.parseError.reason
    End If
  5. Bearbeiten der XML-Struktur: Du kannst jetzt Kind-Elemente löschen oder neue hinzufügen. Beispiel:

    Dim node As MSXML2.IXMLDOMNode
    Set node = xml_TSDoc.SelectSingleNode("//ElementName") ' Ändere ElementName entsprechend
    
    If Not node Is Nothing Then
       node.ParentNode.removeChild node
    End If
  6. XML-Datei speichern: Um die XML-Datei zu speichern, nutze diesen Code:

    xml_TSDoc.Save "C:\Datei_aktualisiert.ts"

Häufige Fehler und Lösungen

  • Fehler beim Laden der XML-Datei: Wenn du die Meldung "Das Element 'TS' wird verwendet, aber es ist im DTD/Schema nicht deklariert" erhältst, liegt es daran, dass das Schema nicht vorhanden ist. Du musst sicherstellen, dass die DTD korrekt deklariert ist.

  • Kind-Elemente werden nicht erkannt: Überprüfe, ob der XPath-Ausdruck korrekt ist. Eine falsche Schreibweise kann dazu führen, dass das Element nicht gefunden wird.


Alternative Methoden

Falls du Schwierigkeiten hast, die XML-Datei direkt in Excel zu bearbeiten, kannst du auch folgende Methoden ausprobieren:

  • XML in Excel importieren: Gehe zu Daten > Aus XML-Datenquelle, um die XML-Datei zu importieren und in eine Tabelle umzuwandeln.

  • Online-Tools: Es gibt verschiedene Online-Tools, mit denen du XML-Dateien bearbeiten kannst. Diese können nützlich sein, wenn du keine Programmiererfahrung hast.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Bearbeiten von XML-Dateien mit VBA:

  1. Zeilenumbruch in Text: Wenn du in einem Textfeld einen Zeilenumbruch hinzufügen möchtest, kannst du dies folgendermassen tun:

    Dim textNode As MSXML2.IXMLDOMNode
    Set textNode = xml_TSDoc.SelectSingleNode("//Textfeld")
    textNode.Text = Replace(textNode.Text, "Text1", "Text1" & vbCrLf)
  2. Hinzufügen eines neuen Kind-Elements: Um ein neues Kind-Element hinzuzufügen, kannst du den folgenden Code verwenden:

    Dim newNode As MSXML2.IXMLDOMNode
    Set newNode = xml_TSDoc.createElement("NeuesElement")
    newNode.Text = "Neuer Text"
    xml_TSDoc.DocumentElement.appendChild newNode

Tipps für Profis

  • VBA Zeilenumbruch verwenden: Um in einer XML-Datei einen Zeilenumbruch zu implementieren, verwende vbCrLf oder vbNewLine im Text.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem VBA-Code, um unerwartete Fehler besser zu handhaben. Zum Beispiel:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    
    Fehlerbehandlung:
    MsgBox "Fehler: " & Err.Description

FAQ: Häufige Fragen

1. Wie öffne ich eine DTD-Datei in VBA?
Du kannst eine DTD-Datei nicht direkt in VBA öffnen, aber du kannst sie in einem Texteditor bearbeiten und sicherstellen, dass sie korrekt deklariert ist.

2. Kann ich XML-Dateien in Excel direkt bearbeiten?
Ja, du kannst XML-Dateien in Excel importieren und dann die Daten in einer Tabelle bearbeiten. Allerdings ist das Bearbeiten der Struktur nur mit VBA möglich.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige