---
title: "Läsa in icke-validerande dokument i DOM-objekt?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/109852-läsa-in-icke-validerande-dokument-i-dom-objekt"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "@nders"
published: "2004-08-23T11:54:02.000Z"
updated: "2004-08-27T10:34:55.000Z"
replies: 4
views: 404
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/109852-läsa-in-icke-validerande-dokument-i-dom-objekt"
---

# Läsa in icke-validerande dokument i DOM-objekt?

## #1 — @nders, 2004-08-23T11:54Z

Hej!

Jag har ett problem. 
På disk har jag en xml-fil med en dtd-deklaration.
Filen kan se ut så här:

```
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE foobar SYSTEM "http://foo.bar.se/dtd/foobar.dtd">
<foobar>
	<foo msgid="DX1342142GZH">
		<bar>
			<Head>
				...
				...
			</Head>
			<Body>
				...
				...
			</Body>
		</ORDERS>
	</foo>
</foobar>
```

Denna fil vill jag lägga in i ett objekt av typen MSXML2.DOMDocument, och det skulle inte vara några problem, egentligen.
Nu är det bara så att filen *http://foo.bar.se/dtd/foobar.dtd* inte alltid är tillgänglig, och då går inläsningen av min fina xml-fil åt pipsvängen. Den enkla, normalt fungerande, koden ser ut någonting sånt här i VB eller liknande språk:

```
Dim objDocRoot as MSXML2.IXMLDomElement
Dim objFoo As New MSXML2.DOMDocument
objFoo.validateOnParse = false
objFoo.async = False
objFoo.setProperty "ServerHTTPRequest", true
objFoo.load "c:\foo\bar\foobar.xml"
[i]set objDocRoot = objFoo.documentElement[/i]
```

Markerad kodrad ger ett *Object required*\-felmeddelande då DTD:n är otillgänglig. (objFoo är 'Nothing')

Någon med idéer om hur jag säger åt mitt program att ge fullständigt fan i ett försöka validera det jag vill läsa in i objektet?
Måste jag spara en kopia av filen utan dtd-referens?

Mvh och tpf,

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

## #2 — monAmour, 2004-08-26T08:39Z

Jag skulle nog läsa in filen som en txt-buffer, plocka bort  dtd-referensen med ett regexp och sedan spara filen temporärt för xml inläsning igen.

Känns som att det ska vara enklast.

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

## #3 — @nders, 2004-08-26T14:01Z

Jag har funderat på den saken, men det känns som ett himskans felaktigt sätt att lösa problemet på. Jag vill ju lösa problemet på ett bra sätt, liksom. :)

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

## #4 — jarvklo, 2004-08-26T17:25Z

Hmm...

Du har en extern DTD...
Har du testat om du kan använda [resolveExternals](http://msdn.microsoft.com/library/en-us/xmlsdk/html/xmproresolveExternals.asp) (som kontrollerar huruvida "externa "delar" av dokumentet, t.ex. DTD:n, skall läsas in vid validering eller ej)  för att komma förbi problemet på något sätt?

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

## #5 — @nders, 2004-08-27T10:34Z

jarvklo, tack! :f

Du har återigen räddat mig ur en liten knipa.
Det verkar räcka alldeles utmärkt bara att lägga till resolveExternals=false.

Vad lätt allt är när man kan det. :)

Tack igen!

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

---

Tråden på webben: https://www.webforum.nu/amne/xml/109852-läsa-in-icke-validerande-dokument-i-dom-objekt
