Avatar billede cr2000 Nybegynder
21. juni 2004 - 15:04 Der er 7 kommentarer og
1 løsning

Kan ikke læse fra XML fil ved brug af DTD

Hej Eksperter.

Jeg bruger en ASP med microsoft's XMLDOM objekt til at hente en XML side.

Jeg bruger så .transformNode funktionen til at vise indholdet via en XSL fil.

Mit problem er at hver gang jeg prøver at smide en doctype ind i toppen af xml dokumentet så virker skidtet ikke.

f.eks.:
<!DOCTYPE note SYSTEM "note.dtd">

Den kommer ikke ud med en fejlmelding med viser bare ikke noget.

Håber i ved hvad jeg skal gøre ved det.

Mvh Christian
Avatar billede janegil Nybegynder
22. juni 2004 - 09:57 #1
Snakker vi om DOCTYPE i XML input til transformasjonen, eller DOCTYPE i output fra transformasjonen?
Avatar billede cr2000 Nybegynder
22. juni 2004 - 12:46 #2
Janegil>>> puha...det var sort :)

Det er når jeg prøver at åbne et XML dokument hvor der i forvejen står noget med Doctype... Så får jeg ikke noget ud af XMLDOM objektet...
Avatar billede janegil Nybegynder
22. juni 2004 - 12:58 #3
OK. Kan XMLDOM finne note.dtd i samme mappe som den finner XML-dokumentet?

Det kunne være fare for at den prøver å validere XML mot en DTD som den ikke kan finne?

(Selv om det kunne fortjene en klar feilmelding?)

Har du problemer med å validere XML'en din på http://validator.w3.org/ ?

I http://heima.olivant.fo/~styrheim/xml/teater/macbeth/macbeth.xml har jeg en DOCTYPE som ligner din, <!DOCTYPE play SYSTEM "play.dtd">, og validatoren klarer heller ikke å finne http://heima.olivant.fo/~styrheim/xml/teater/macbeth/play.dtd.

Nå er nok relativ URL i DOCTYPE en dårlig vane, fordi lenka lett ødelegges når dokumentet flyttes. Kanskje vi begge burde skifte til absolutt URL. Men for min egen del har jeg det problemet at jeg tester lokalt offline, og ikke kan finne DTD'er ute på internett.

Hva betyr forresten SYSTEM kontra PUBLIC i en doctype?
Avatar billede janegil Nybegynder
22. juni 2004 - 13:05 #4
http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/doctype.asp kunne tyde på at i hvert fall jeg skulle bruke PUBLIC i stedet for SYSTEM.

http://www.w3.org/TR/2004/REC-xml-20040204/#NT-doctypedecl, forstå det den som kan.
Avatar billede cr2000 Nybegynder
22. juni 2004 - 13:14 #5
Jeg har ikke selv magt over XML dokumentet da det er et jeg modtager udefra.
http://www1.finn.no/jsp/xmlexport.jsp?partnerid=kobb&dtd=FINNIF-estateforsale32.dtd
Avatar billede janegil Nybegynder
22. juni 2004 - 13:20 #6
Så vet du heller ikke at det er DOCTYPE som er problemet? Finn.no, er ikke det de som har saksøkt folk (forgjeves) for å lenke til dem? Så det kan godt være at serveren deres er satt opp for å nekte deg adgang til hva det nå er du gjerne vil. Tekniske sperrer er mere fornuftig enn søksmål.
Avatar billede cr2000 Nybegynder
22. juni 2004 - 13:35 #7
Vi har et samarbejde med dem.
Det er noget jeg laver til dem :)
Avatar billede janegil Nybegynder
23. juni 2004 - 09:23 #8
Så kan du kanskje få se et utdrag av loggen fra serveren deres også?

Hvis du får lov å installere ting på serveren din, så kunne HTTPlook fra httpsniffer.com være en ide: Så kan du sammenligne request og response når du henter XML fra IE, med hva som skjer når IIS ber om samme side?

Men du installerer ikke HTTPsniffer på en produksjonsserver, den har det med å blokkere HTTP hver 4.gang den brukes.

Ser forresten at jeg fikk en DOCTYPE med absolutt URL.

Høyreklikket i IE for å be om validering av XMLen: THe system cannot locate the resource specified.

Det er jo ikke sant. Men med http://www.finn.no/dtd/FINNIF-estateforsale321.dtd i IE, sier den: Cannot have a DTD declaration outside of a DTD. Error processing resource 'http://www.finn.no/dtd/FINNIF-estateforsale321.dtd'. Line 15, Position 11

Microsoftkomponentene mener - berettiget, eller trolig ikke - at det er noe galt med DTD'en i http://www.finn.no/dtd/FINNIF-estateforsale321.dtd. "FINN.IF.ESTATE.FORSALE" er kanskje et noe uvanlig elementnavn, jeg vet ikke.
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