---
title: "Ta emot XML-dokument med MSXML"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/99320-ta-emot-xml-dokument-med-msxml"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "@nders"
published: "2004-03-12T15:29:38.000Z"
updated: "2004-03-15T08:13:42.000Z"
replies: 6
views: 622
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/99320-ta-emot-xml-dokument-med-msxml"
---

# Ta emot XML-dokument med MSXML

## #1 — @nders, 2004-03-12T15:29Z

Hej!

Jag försöker ta emot ett XML-dokument som postas till mig via HTTP. Det fungerar fint, under förutsättning att det inte finns någon dtd-referens i dokumentet. Så här ser min mottagarkod ut:

```
<%
set objXML= Server.CreateObject("MSXML2.DOMDocument")
objXML.setProperty "ServerHTTPRequest", True
objXML.validateOnParse = true
objXML.async = false

objXML.load (request)
objXML.save("c:\xml\test\test.xml")
%>
```

Just nu i ASP / VBScript alltså.

Någon med idéer?

Mvh och tpf,

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

## #2 — UlfT, 2004-03-12T15:36Z

Själv har jag bara använt msxml för filer som redan finns på datorn. En tanke kan ju vara att strunta i att validera dokumentet. Det kanske är så att valideringen inte går igenom som den ska, när koden måste vänta på att dokumentet ska föras över. Om du vet med dig att xml-dokumenten som kommer, alltid är korrekta, finns det heller ingen anledning att validera.

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

## #3 — @nders, 2004-03-12T16:36Z

Jag behöver inte validera, dokumenten är redan färdigvaliderade. 
Hur jag än gör blir målfilen tom. 

Vi kan säga så här: Om jag i stället för att ta emot med request hämtar exakt samma dokument från disk funkar det finfint och då gör det inget om dtd-referensen finns där. Men så fort den finns med i filen som skickas så stöts det på patrull.

Jag vill helst ha möjlighet att validera efter mottagandet, även om det i detta fall inte är ett måste.

mvh

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

## #4 — @nders, 2004-03-12T16:50Z

För att ytterligare illustrera; följande fungerar:

```
set objXML= Server.CreateObject("MSXML2.DOMDocument")
objXML.resolveExternals=false
objXML.validateOnParse=false
objXML.async = false

objXML.load (Server.MapPath("1094348_ordrsp20040223_060657_671.xml"))
objXML.save("c:\xml\test\test.xml")
```

Följande fungerar icke:

```
set objXML= Server.CreateObject("MSXML2.DOMDocument")
objXML.resolveExternals=false
objXML.validateOnParse=false
objXML.async = false

objXML.load (request)
objXML.save("c:\xml\test\test.xml")
```

Det är samma fil som skickas, som läses in. Om jag tar bort dtd-referensen i källfilen fungerar båda.

Mvh

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

## #5 — niko, 2004-03-15T07:56Z

Vad är felmeddelandet? Dvs värdet på *objXML.parseError.reason/errorCode* direkt efter load:en?

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

## #6 — @nders, 2004-03-15T08:07Z

Den utskriften hade jag inte tänkt på att jag kunde kolla av, eftersom denna mottagarsida liksom körs i blindo.

När jag skickar dokumentet med dtd-referens och kört .load, får jag följande felmeddelande från parsern: **XML document must have a top level element.**  (kod -1072896680)

Doesn't make sense to me. :)

Mvh

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

## #7 — @nders, 2004-03-15T08:13Z

Men hallå här.

Jag har klantat mig. I mina ivriga tester har jag klippt bort följande rader:

```
objXMLDoc.validateOnParse = True
objXMLDoc.async = False
objXMLDoc.setProperty "ServerHTTPRequest", True
```

från filen som skickar xml-dokumentet. In med dem och allt funkar. 

Det är klart mottagandet går åt pipan om man inte skickar någonting... ;)

Tack för hjälpen, niko. :)

\*bankar huvudet i bordet\*

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

---

Tråden på webben: https://www.webforum.nu/amne/xml/99320-ta-emot-xml-dokument-med-msxml
