Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1796to1800
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

Leerzeichen vor Knoten in XML entfernen

Leerzeichen vor Knoten in XML entfernen
09.12.2020 19:31:39
Marc
Hallo zusammen,
Tino hatte kürzlich einen Code hier für mich zur Verfügung gestellt, der einen XML File zunächst in einen String einliest und dann soll der Code in ein XML DOm Objekt eingelesen werden.
Einlesen in den String klappt aber das DOM Objekt bleibt leer und ich habe die Vermutung es liegt am Versatz in den einzelnen Zeilen:
Das Ganze sieht nämlich so aus:

<year yr="2013" amount="6.2" />
<year yr="2014" amount="4.7" />
<year yr="2015" amount="" />
</cashendofperiod>
</cashflow>
<lastupdate month="4" dayofmonth="30" yr="2015" />
</companyprofile>
Mit Dateien des gleichen Formats, die ich zunächst in einem Online XML-Viewer bearbeitet hatte, so dass alles linksbündig ist, funktioniert das Einlesen ins DOM Objekt wunderbar.
Mir geht es jetzt darum den gesamten inhalt des ausgegebenen Textfile linksbündig zu bekommen. Ich vermute, dass man das entweder in der Funktion lösen kann oder in der Sub mit der man den Textfile speichert aber ich weiß nicht wie.
Das ist der Code:
Option Explicit
Sub Test()
Dim XML As Object, XMLNode As Object, fName As String
Dim sPathXML$, r&, sXMLString$
sPathXML = "E:\FTC XML Files\DE000DFAG997.xml"
fName = "DE000DFAG997"
sXMLString = LeseXMLFile(sPathXML)
Speichern sXMLString, fName         ' Aufrufen der Sub zum Speichern
End Sub
' Sub zum Speichern des Textfile
Sub Speichern(Text As String, Filename As String)
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim targetFile As Object
Dim myFilePath As String
myFilePath = "C:\Users\Herbert_Meisel\Downloads\XML FTC\Textfiles\" & Filename & ".txt"
Set targetFile = fso.CreateTextFile(myFilePath, True)  ' this will overwrite any existing  _
file
targetFile.Write (Text)
targetFile.Close ' close the file
End Sub
' Funktion zum Entfernen der Doc Type Zeile
Function LeseXMLFile(sPath$) As String
Dim F%, sInhalt$, Regex As Object
F = FreeFile
Open sPath For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.MultiLine = True
.Pattern = "+>\n?"
.Global = True
.IgnoreCase = True
If .Test(sInhalt) Then
sInhalt = .Replace(sInhalt, "")
End If
End With
LeseXMLFile = sInhalt
End Function

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen vor Knoten in XML entfernen
09.12.2020 19:56:21
Tino
Hallo,
hast du auch den letzten Kommentar von mir umgesetzt?
Normal stört das fehlen von Zeilenumbrüche und einrücken nicht, dient nur der Lesbarkeit.
ersetze die Zeile
.Pattern ...
durch diese
.Pattern = "<!DOCTYPE.+>\n?"
Gruß Tino
AW: Leerzeichen vor Knoten in XML entfernen
09.12.2020 20:04:31
Marc
Hi Tino,
ja, das hatte ich beachtet. Wurd ehier nur nicht angezeigt, wie bei Dir auch zuvor.
Also ich will es nicht beschwören aber ich bin mir ziemlich sicher, dass es am Einrücken liegt denn ich habe Textdateien vorliegen, die der exakt gleichen Quelle entstammen, die eingerückt sind und die lassen sich problemlos in das DOm Objekt einlesen.
Vermutlich muss ich den String Zeile für Zeile einlesen um alles linksbündig zu bekommen. Oder kennst Du noch eine andere Lösung?
Anzeige
AW: Leerzeichen vor Knoten in XML entfernen
09.12.2020 22:09:14
Marc
Also ich hab es hinbekommen die Datei vollständig linksbündig zu erstellen. Es hat tatsächlich an den eingerückten Zeilen gelegen.
VG
AW: Leerzeichen vor Knoten in XML entfernen
10.12.2020 04:46:16
Tino
Hallo,
super, auch wenn es doch ein seltsames Verhalten ist!
Gruß Tino

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige