Hallo zusammen,
ich habe diesen Thread unter XML schon mal geschrieben...
...da ich dort keine Antwort bekommen habe versuch ich s hier nochmal...
Ich hoffe es hat niemand was dagengen, dass ich es 2 Mal versuch...
Ich möchte eine XML-Datei mit folgenden Childs erstellen:
CalDat und User.
Wenn diese Datei vorhanden ist soll der nächste Eintrag vor allen angefügt werden.
Mein Ansatz sieht wie folgt aus:
Das XML-File sieht nach dem ersten Speichern in etwa so aus:
Nach dem zweiten Speichern sollte das XML-File in etwa so aussehen..
Hat jemand eine Idee wie ich das hinbekomme...??
Schon mal Danke....
ich habe diesen Thread unter XML schon mal geschrieben...
...da ich dort keine Antwort bekommen habe versuch ich s hier nochmal...
Ich hoffe es hat niemand was dagengen, dass ich es 2 Mal versuch...
Ich möchte eine XML-Datei mit folgenden Childs erstellen:
CalDat und User.
Wenn diese Datei vorhanden ist soll der nächste Eintrag vor allen angefügt werden.
Mein Ansatz sieht wie folgt aus:
Code:
Option Explicit Private Const FileName As String = "MyFile.XML" Private FSO As New FileSystemObject ' --> Um Umlaute und Sonderzeichen der deutschen Sprache ' --> in einem XML Dokument zuzulassen benötigt man diese ISO Codierung Private Const strISO As String = " encoding=""iso-8859-1""" Private Sub cmdWriteXML_Click() On Error Goto errHandler Dim oDOM As DOMDocument Dim oRoot As IXMLDOMElement Dim oInstruct As IXMLDOMProcessingInstruction Dim oElemVN As IXMLDOMElement Dim oElemNN As IXMLDOMElement Dim oElemData As IXMLDOMElement Dim oDocType As IXMLDOMDocumentType Dim intIDX As Integer Dim strXMLInstruct As String Set oDOM = New DOMDocument 'Wenn Datei schon vorhanden, dann laden sonst neu erstellen If FSO.FileExists(App.Path & "\" & FileName) = True Then oDOM.async = False If oDOM.Load(App.Path & "\" & FileName) = False Then MsgBox "XML-Datei konnte nicht geladen werden", vbCritical, "Datei laden" Exit Sub End If Else 'XML Version und die Codierung des Dokumentes festgelegen '-> darf nur beim ersten erstellen der Datei erfolgen Set oInstruct = oDOM.createProcessingInstruction("xml", "version=""1.0""" & strISO) Call oDOM.insertBefore(oInstruct, oDOM.childNodes.Item(0)) End If 'Wenn Datei noch nicht vorhanden ist das Rootelement einfügen 'Ist die Datei vorhanden nicht hinzufügen, da nur ein Rootelement vorhanden sein darf If FSO.FileExists(App.Path & "\" & FileName) = False Then 'Rootelement erstellen welches die Datenelement beinhalten soll Set oRoot = oDOM.createElement("rsData") oDOM.appendChild oRoot Else Set oRoot = oDOM.documentElement MsgBox oRoot.xml End If 'anfügen der Daten an das Root Element Set oElemData = oDOM.createElement("Datensatz") oRoot.appendChild oElemData Set oElemVN = oDOM.createElement("CalDate") oElemData.appendChild oElemVN 'Aktuelles Datum einfügen oElemVN.Text = Now Set oElemNN = oDOM.createElement("User") oElemData.appendChild oElemNN 'Text aus dem Textfeld als User eintragen oElemNN.Text = Trim(Me.txtUser.Text) 'Wenn Datei vorhanden den Datensatz an den Anfang einfügen If FSO.FileExists(App.Path & "\" & FileName) = True Then 'Das hier funktioniert so nicht... 'hat jemand eine Idee was hier rein muss...??? Call oDOM.insertBefore(oElemVN, oElemData) End If 'Datei speichern Call oDOM.Save(App.Path & "\" & FileName) Exit Sub errHandler: MsgBox Err.Description Err.Clear End Sub
Code:
<rsData> <Datensatz> <CalDate>04.06.200920:46:09</CalDate> <User>MyUser</User> </Datensatz> </rsData>
Code:
<rsData> <Datensatz> <CalDate>04.06.2009 20:48:09</CalDate> <User>MyUser 2</User> </Datensatz> <Datensatz> <CalDate>04.06.2009 20:46:09</CalDate> <User>MyUser</User> </Datensatz> </rsData>
Schon mal Danke....
Comment