Avatar billede kisbye Nybegynder
15. oktober 2004 - 13:11 Der er 6 kommentarer

tilføj property til XML TAGet med XMLDOM

Hej
Jeg er ved at lave et RSS feed, og det virker som sådan også meget godt.

Nu er det så at jeg i tagget <?xml version="1.0" ?> gerne vil have tilføjet følgende property: encoding='iso-8859-1'

jeg har prøvet at gøre det med createProcessingInstruction, men får hele tiden fejlbeskeden:

"The 'version' attribute is required at this location."

i kan se RSS feedet her:
http://admin.center-it.dk/xmldocs/rss.xml

håber der er nogen der har en løsning :)

Her kommer sourcen till gemme funktionen:

    Set objDom = Server.CreateObject("Microsoft.XMLDOM")
    Set objRSS = objDom.createElement("rss")
    Set objattID = objDom.createAttribute("version")
   
    objattID.Text = "2.0"
    objRSS.setAttributeNode objattID
   
    Set objattID = nothing
   
    Set objattID     = objDom.createAttribute("xmlns:dc")
    objattID.Text     = "http://purl.org/dc/elements/1.1/"
   
    objRSS.setAttributeNode objattID
    objDom.appendChild objRSS
   
    Set Objchannel = objDom.createElement("channel")
    objRSS.appendChild Objchannel
   
    Set objChild1 = objDom.createElement("title")
    objChild1.Text = "Center-ITs RSS Feed"
    Objchannel.appendChild objChild1
   
    Set objChild2 = objDom.createElement("link")
    objChild2.Text = "http://www.center-it.dk"
    Objchannel.appendChild objChild2
   
    Set objChild3 = objDom.createElement("description")
    objChild3.Text = "Product liste"
    Objchannel.appendChild objChild3
   
    Call openconnection("../database/db_1_centerit.mdb")
    call openrecordset("select * from Tbl_Products order by Flt_Index desc")
    i = 0
    do while not Str_Rsname.eof or not Str_Rsname.bof
        i = i + 1
        Set parrent2 = objDom.createElement("item")
        Objchannel.appendChild parrent2
       
        Set childtitle = objDom.createElement("title")
        childtitle.Text = Str_Rsname("Flt_Note")
        parrent2.appendChild childtitle
       
        Set childinfo = objDom.createElement("description")
        childinfo.Text = Str_Rsname("Flt_Freetext")
        parrent2.appendChild childinfo
       
        Set childlink = objDom.createElement("link")
        childlink.Text = "http://feed.center-it.dk/locator.asp?index=" & Str_Rsname("Flt_Index")
        parrent2.appendChild childlink
       
        set parrent2 = nothing
        Set childlink = nothing
        set childprice = nothing
        set childtitle = nothing
        if i = loopcount then exit do
        Str_Rsname.movenext
        if Str_Rsname.eof then exit do
    loop
    call closerecordset()
    call closeconnection()
   
    'Set objPI2 = objDom.createProcessingInstruction("xml","encoding='iso-8859-1'")
    Set ObjPI = objDom.createProcessingInstruction("xml","version='1.0'")
    objDom.insertBefore objPI, objDom.childNodes(0)
    objDom.Save server.MapPath("xmldocs/rss.xml")
Avatar billede kisbye Nybegynder
15. oktober 2004 - 16:44 #1
bemærk at Set objPI2 = objDom.createProcessingInstruction("xml","encoding='iso-8859-1'")
er udkommenteret.
Avatar billede janegil Nybegynder
15. oktober 2004 - 19:17 #2
Såvidt jeg vet, er tanken i DOM at dokumentet er i minne som abstrakte tegn uten spesifikk encoding, at det først er når dokumentet serialiseres som en XML-fil at encoding blir relevent?

I så fall bør encoding kunne spesifiseres i Save kommandoen?

Men http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html nevner ingen save kommando, så her er vi nok over i det Microsoft-spesifikke?
Avatar billede kisbye Nybegynder
18. oktober 2004 - 10:38 #3
Jeg er først lige startet med at lege med XML, og RSS.
Så jeg forstår ikke rigtigt din kommentar.

Grunden til mit sprøgsmål er følgende advarsel:

http://feeds.archive.org/validator/check.cgi?url=http%3A%2F%2Fadmin.center-it.dk%2Fxmldocs%2Frss.xml

Ja, Jeg bruger jo ASP, så det er vel en microsoft teknologi.

PS. Jeg har ingen adgang til serveren, det ligger på.
Avatar billede janegil Nybegynder
18. oktober 2004 - 11:12 #4
Feeden din heter *.xml, betyr det at den ikke er generert av ASP, og at ASP ikke kan tilføye encoding-info i HTTP-headeren?

Det er mulig at det ville gå bedre å kalle den .RSS, det er noe med at streng lesning av en spec tilsier at MIME-type text/xml ALLTID skal ha US-ASCII.

Prøv å endre navn til .rss:
objDom.Save server.MapPath("xmldocs/rss.rss")
og se hva validatoren så sier?
Avatar billede kisbye Nybegynder
21. oktober 2004 - 17:26 #5
jeg har gevaldigt travlt for tiden, og har ikke lige tid til at efterteste det.
Det entlig også ligemeget, da det ser ud til at virke fortræffeligt.

Jeg vil gerne give dig pointene som tak for hjælpen, men du har ikke lavet et svar
Avatar billede janegil Nybegynder
22. oktober 2004 - 09:43 #6
Ta dem selv, når du en gang får tid til å lære deg detaljene i Save-kommandoen.
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