webForumDet fria alternativet

Problem att generera XML

4 svar · 429 visningar · startad av rille77

rille77Medlem sedan feb. 200476 inlägg
#1

Har stött på problem när jag ska generera en XML fil med hjälp av ASP.

IE 6 sväljer allt och visar sidan precis som den ska men Mozilla 2 ger mig bara felmeddelandet.

XML-tolkningsfel: xml-deklaration inte i början av extern entitet
Adress: http://dev.xxxxxxxx.se/check.asp
Radnummer 3, Kolumn 1:<?xml version="1.0" encoding="UTF-8" ?>

Om man kollar källkoden i Mozilla så ser det ut så här.

<?xml version="1.0" encoding="UTF-8" ?>
<response>
    <method>checkName</method>
      <result>0</result>
</response>

Contenttype är satt till text/xml.

Filen check.asp ser ut såhär.

<!--#Include Virtual="_func/inc.asp"-->
<%
Response.ContentType="text/xml"

Function nameInUse(userName)
    Dim strSQL, intNameInUse
        
    strSQL = "SELECT COUNT(Name) FROM User WHERE Name = {0}"
    intNameInUse = objDb.GetValue(strSQL, Array(Request.Querystring("name")))
    
    nameInUse = intNameInUse
End Function
%>

<?xml version="1.0" encoding="UTF-8" ?>
<response>
    <method>checkName</method>
      <result><%Response.Write(nameInUse(Request.Querystring("name")))%></result>
</response>

Om nån skulle kunna hitta felet skulle jag vara hjärtligt tacksam då jag har stirrat mig blind på det.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#2

Ligger deklarationen av XML på första raden i dokumentet, för det m¨åste den göra för att funka i Mozilla!

rille77Medlem sedan feb. 200476 inlägg
#3

Nej det gör den inte, den ligger på rad 2 iom att jag inkluderar inc.asp det första jag gör i filen.

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#4

rille77 skrev:

Nej det gör den inte, den ligger på rad 2 iom att jag inkluderar inc.asp det första jag gör i filen.

Där har du orsaken, att den placerar sig på rad 2. Men det kan du fixa så här:

<!--#Include Virtual="_func/inc.asp"--><%
Response.ContentType="text/xml"

Function nameInUse(userName)
    Dim strSQL, intNameInUse
        
    strSQL = "SELECT COUNT(Name) FROM User WHERE Name = {0}"
    intNameInUse = objDb.GetValue(strSQL, Array(Request.Querystring("name")))
    
    nameInUse = intNameInUse
End Function
%><?xml version="1.0" encoding="UTF-8" ?>
<response>
    <method>checkName</method>
      <result><%Response.Write(nameInUse(Request.Querystring("name")))%></result>
</response>

Det bör funka.. hoppas jag! :)

rille77Medlem sedan feb. 200476 inlägg
#5

Stort tack nu funkar det.

Höll på att bli fullkomligt tokig på det

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)