---
title: "Skapa/redigara XML-dokument"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/5236-skapa-redigara-xml-dokument"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "SPiN"
published: "2001-10-23T18:11:00.000Z"
updated: "2001-10-31T17:58:00.000Z"
replies: 2
views: 396
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/xml/5236-skapa-redigara-xml-dokument"
---

# Skapa/redigara XML-dokument

## #1 — SPiN, 2001-10-23T18:11Z

Halloj!

Jag har haft lite problem nu med en ActiveX-komponent som jag ska köra XML genom. @nders har gett mig ett par visa ord, men problemet kvarstår dock...

Jag vill genom komponenten kunna antingen skapa ett nytt eller redigara ett befintligt XML-dokument, där jag ska logga olika fel via en ASP-sida.

Subben som jag har problem med ser ut så här:

```
Public Sub Log(ByVal strLogFile As String, ByVal strError As String)
&nbsp; &nbsp; &nbsp; On Error Resume Next

&nbsp; &nbsp; &nbsp; Dim objXML As MSXML2.DOMDocument
&nbsp; &nbsp; &nbsp; Dim objRoot As MSXML2.IXMLDOMElement
&nbsp; &nbsp; &nbsp; Dim objNew As MSXML2.IXMLDOMElement
&nbsp; &nbsp; &nbsp; Dim objEvent As MSXML2.IXMLDOMElement
&nbsp; &nbsp; &nbsp; Dim bFileExisted As Boolean

&nbsp; &nbsp; &nbsp; Set objXML = New MSXML2.DOMDocument
&nbsp; &nbsp; &nbsp; objXML.async = False

&nbsp; &nbsp; &nbsp; If FileExists(strLogFile) Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bFileExisted = True
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objXML.Load(strLogFile)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set objRoot = objXML.documentElement
&nbsp; &nbsp; &nbsp; Else
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; bFileExisted = False
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set objRoot = objXML.createElement("EventLog")
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objXML.appendChild(objRoot)
&nbsp; &nbsp; &nbsp; End If

&nbsp; &nbsp; &nbsp; Set objNew = objXML.createElement("Event")
&nbsp; &nbsp; &nbsp; objRoot.appendChild(objRoot)

&nbsp; &nbsp; &nbsp; Set objEvent = objXML.createElement("File")
&nbsp; &nbsp; &nbsp; objEvent.Text = objRequest.ServerVariables("SCRIPT_NAME")
&nbsp; &nbsp; &nbsp; objNew.appendChild(objEvent)

&nbsp; &nbsp; &nbsp; Set objEvent = objXML.createElement("Date")
&nbsp; &nbsp; &nbsp; objEvent.Text = Now()
&nbsp; &nbsp; &nbsp; objNew.appendChild(objEvent)

&nbsp; &nbsp; &nbsp; Set objEvent = objXML.createElement("Error")
&nbsp; &nbsp; &nbsp; objEvent.Text = strError
&nbsp; &nbsp; &nbsp; objNew.appendChild(objEvent)

&nbsp; &nbsp; &nbsp; If Not bFileExisted Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Dim objPI As MSXML2.IXMLDOMProcessingInstruction
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set objPI = objXML.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'")

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objXML.insertBefore objPI, objXML.childNodes(0)

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Set objPI = Nothing
&nbsp; &nbsp; &nbsp; End If

&nbsp; &nbsp; &nbsp; objXML.Save(strLogFile)

&nbsp; &nbsp; &nbsp; Set objEvent = Nothing
&nbsp; &nbsp; &nbsp; Set objNew = Nothing
&nbsp; &nbsp; &nbsp; Set objRoot = Nothing
&nbsp; &nbsp; &nbsp; Set objXML = Nothing

&nbsp; &nbsp; &nbsp; If Err Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With objResponse
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Clear
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Write "Error<br>"
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Write Err.Description
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .End
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End With
&nbsp; &nbsp; &nbsp; End If
End Sub
```

Felmeddelandet jag får är:
*Object doesn't support this property or method*

Men det hinner skapas ett XML-dokument, som innehåller process instruktionen, trots felmeddelandet.

Permalänk: https://www.webforum.nu/p/5236

## #2 — SPiN, 2001-10-24T13:07Z

Hmm, jag har suttit och provat mig fram med olika sätt för att få det här att funka nu, och när jag gjorde som nedan fick jag inget felmeddelande, men inte heller skrevs det något till XML-filen ( förutom process instruktionen, såklart :OO ).

```
Public Sub TestLog(ByVal strLogFile As String)
&nbsp; &nbsp; &nbsp; On Error Resume Next

&nbsp; &nbsp; &nbsp; Dim objXML As MSXML2.DOMDocument30
&nbsp; &nbsp; &nbsp; Dim objRoot As MSXML2.IXMLDOMElement
&nbsp; &nbsp; &nbsp; Dim objEvent As MSXML2.IXMLDOMElement

&nbsp; &nbsp; &nbsp; Set objXML = New MSXML2.DOMDocument30
&nbsp; &nbsp; &nbsp; Set objRoot = objXML.createElement("rotElement")

&nbsp; &nbsp; &nbsp; set objEvent = objXML.createElement("eventElement")
&nbsp; &nbsp; &nbsp; objEvent.text = "event"
&nbsp; &nbsp; &nbsp; objRoot.appendChild(objEvent)

&nbsp; &nbsp; &nbsp; objXML.appendChild(objRoot)

&nbsp; &nbsp; &nbsp; Dim objPI As MSXML2.IXMLDOMProcessingInstruction
&nbsp; &nbsp; &nbsp; Set objPI = objXML.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'")

&nbsp; &nbsp; &nbsp; objXML.insertBefore objPI, objXML.childNodes(0)

&nbsp; &nbsp; &nbsp; objXML.Save(strLogFile)

&nbsp; &nbsp; &nbsp; If Err Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With objXML
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Clear
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Write Err.Description
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .End
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End With
&nbsp; &nbsp; &nbsp; End If
End Sub
```

Har också märkt att jag har skickat felaktiga objekt som parametrar till XMLDOM's metoder.
Bl.a.:
appendChild tar emot argument av typen IXMLDOMNode

Jag återkommer nog lite senare ikväll med fler upptäckter :e

Permalänk: https://www.webforum.nu/p/238186

## #3 — SPiN, 2001-10-31T17:58Z

Nu ni, har jag löst det... Eller löst och löst, jag vet fortfarande inte som var fel :)

Jag struntade i att dimma mina variabler bara, och tog bort option explicit... Så nu har det hoppat igång. Jättetrevligt :)

Permalänk: https://www.webforum.nu/p/238187

---

Tråden på webben: https://www.webforum.nu/amne/xml/5236-skapa-redigara-xml-dokument
