Avatar billede mpanzieri Nybegynder
23. marts 2004 - 10:00 Der er 2 kommentarer og
1 løsning

Kræsen DOMDocument.Load() metode?

Jeg har noget XML af formen:
<?xml version="1.0" encoding="UTF-16"?>
<career_development_cycle>
    <records>
        <record id="110069"> ...
        <record id="110070"> ...
                ...
    </records>
</career_development_cycle>

, som jeg vil åbne i Word VBA, idet XMLDocFilename indeholder filnavnet (inkl. fuld sti) til XML filen:
    Dim XMLDocFilename As String
    Dim XMLDoc As New MSXML2.DOMDocument
    Dim bResult As Boolean

    ...

    'Load XML input document.
    XMLDoc.async = False
    XMLDoc.resolveExternals = False

    bResult = XMLDoc.Load(XMLDocFilename)

       
Men jeg får ustabile resultater? En tidlig version af input XML filen, der indeholder een <record> går fint, 2. og 3. måske også, men på et eller andet tidspunkt fejler Load (bResult = False), åbenbart fordi den ikke mener inputfilen er well-formed XML. Men alle inputfiler er well-formed XML iflg. XMLSpy.

Er der andre der har oplevet at MSXML2.DOMDocument's Load metode er kræsen mht. XML-inputtet og som har et tip til at afhjælpe problemet?

På forhånd tak.
Avatar billede kanyle Nybegynder
23. marts 2004 - 14:42 #1
Har du mulighed for at arbejde med MSXML4 istedet for 2 - dette kunne evt. hjælpe på det..?
/kanyle
Avatar billede Slettet bruger
23. marts 2004 - 19:26 #2
Henter du over netværk? I så fald vil jeg anbefale at bruge XMLHTTPRequest i stedet for ("MSXML2.ServerXMLHTTP.4.0").

På den kan du sætte de forskellige timeouts (resolve, connect, send & receive), hvilket har hjulpet mig et par gange.

/CS

PS: ".4.0" er nødvendigt for at benytte Interfaces fra MSXML4, men de hedder ligger stadig i det typelibrary der hedder "MSXML2" - crazy but funny (Pim de K.)
Avatar billede mpanzieri Nybegynder
24. marts 2004 - 12:59 #3
Tak for tips, tænkte selv over MSXML 4 men fandt omsider svaret et helt andet sted.

Tro det eller lad være MSXML (uanset version) synes ikke en fil med headeren:
<?xml version='1.0' encoding='UTF-16'?>
, er ordentlig XML. Så var den heller ikke så glad for Carriage Return og Newline characters i tag indholdet, så dem filtrerer jeg nu fra. Så nu virker kaldet (og min kode :) ).

Så blev man så meget klogere...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester