nu ska vi se om jag kan förklara mitt problem så att ni förstår.
Jag har köpt en tjänst som gör att jag får fram olika data från ett företags databas.
Det funkar så här:
Jag har ett formulär på min ASP-sida som postar till deras sokmotor.asmx.
När jag postat formuläret så får jag fram en XML-sida med den datan jag fått fram i sökningen.
Men hur sjutsingen kan jag ta denna XML-koden och skriva ut den snyggt och prydligt och så där? Nu får jag ju bara fram en XML-sida från deras server.. vill ju ha in den i mitt system...
Men när jag postat formuläret så får jag ju upp XML-dokumentet i ett fönster från Deras server... Om jag vill ha in stylesheetet så måste jag ju i så fall spara hem XML-dokumentet till min dator? Eller tänker jag fel?
EDIT: Så här ser filerna ut som jag får fram med formuläret (nu visar den bara två träffar, men det kan vara mkt fler):
I sådana fall skulle väl kanske någon form av XML parser kunna användas, för att komma närmast. Alternativt använda javascript.. men det är kanske inte ultimat. :)
Vet inte vilken version av ASP jag använder. Det är det vanliga som följer med IIS. Se mitt exempel ovan :)
Mitt problem är ju att jag inte vet hur jag ska skriva ut datan så det funkar i XHTML, och hur jag får in stylesheetet när jag itne har dokumentet på servern :r
Vet inte vilken version av ASP jag använder. Det är det vanliga som följer med IIS. Se mitt exempel ovan :)
Mitt problem är ju att jag inte vet hur jag ska skriva ut datan så det funkar i XHTML, och hur jag får in stylesheetet när jag itne har dokumentet på servern :r
:)
Om det nu inte är ASP.NET utan hederliga ASP dvs (3.0) så kan man använda en XML Parser, alt. läsa in XML-resultatet och skriva ut det på ex. filen.asp och dynamiskt kasta in textsnutten
Använd MSXML. Läs in dokumentet från den externa servern till ett DOM-objekt.
Sedan kan du antingen transformera med xsl(t), eller gå igenom datat och slänga ut det i html eller spara det på ett annat ställe.
Använd MSXML. Läs in dokumentet från den externa servern till ett DOM-objekt.
Sedan kan du antingen transformera med xsl(t), eller gå igenom datat och slänga ut det i html eller spara det på ett annat ställe.
EDIT: Vad menar du med att "transformera"? Är det när man skriver ut all data så som man vill ha den?
Testar lite här, men den verkar inte skriva ut XML-koden som den ska?
<%
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.w3schools.com/XML/note.xml", False
objHTTP.Send
str = objHTTP.responseText
Set objHTTP = Nothing
Set objDOM = Server.CreateObject ("msxml2.domdocument")
objDOM.loadXML str
Response.Write objDOM.xml
%>
EDIT: Jag tror jag fattar att XML-filen finns i objDOM.xml och att jag ska transformera det som finns i objDOM.xml... men hur ska jag ...hm.... ska jag skapa en XSL-fil (xml-stylesheet) och... ptja... hur fan ska jag kunna lägga in så att objDOM.xml ska styleas med min XSL-fil ?
Tja, typ. Kanske - jag vet inte riktigt vad det är för sökning du gör. Men visst kan du skicka data (antingen med post eller get), det finns massor av exempel både här på webForum och på googgel eller vad det nu heter. =)
Testar lite här, men den verkar inte skriva ut XML-koden som den ska?
Jag vet inte om det är så att inte w3schools skickar xml:en till dig - prova att lägga upp en egen xml-fil att testa med.
- - - -
Med "transformera" menar jag att med hjälp av ett xsl-dokument formatera om xml-koden till något läsbart - exempelvis HTML.
men hur ska jag ...hm.... ska jag skapa en XSL-fil (xml-stylesheet) och... ptja... hur fan ska jag kunna lägga in så att objDOM.xml ska styleas med min XSL-fil ?
Kommer jag behöver modda webservice.asp något? Fattar inte mkt av den.
Angående den här koden:
set ws = new webservice
ws.url = "http://localhost/Service1.asmx"
*** "method", brukar inte det vara POST eller GET? Varför står det HelloWorld?
ws.method = "HelloWorld"
*** Är det här mina sökparametrar?
*** Parametrarna måste ju höra ihop med något.
*** Alltså form-inputen har ju ett namn t.ex name="myName"
*** Här får man ju inte med något "name"
ws.Parameters.Add "Namn","Fredrik"
ws.execute
xmltext = ws.response
ws.Parameters.Add "ParameterName", ParameterValue
ParameterName, är namnet på parametern som skickas till Webservicen hos den som säljer "tjänsten", ex. "SocialSecurityNumber" eller något sådant :)
ParameterValue, kan vara ex. Request.Form("myName") eller Request.QueryString("myName") beroende på vad man lagt för method i formuläret.
ws.execute använd WebServicen, vi exekverar det hela för att hämta information vi vill ha.
ws.response xml-texten som returneras från WebServicen. Som vi sedan kan använda xmlDoc och xslDoc för att transformera ex ws.response till en fin XHTML-sida, så länge XSLT-stylesheetmallen är korrekt dvs.
Den WebService jag prövade mot skrev ut:
Hej, Fredrik
Det var en simpel HelloWorld, där webservice metoden hette HelloWorld i webservicen Service1
Om du nu förstår mina icke så pedagogiska beskrivningar..
Kan man kort och gott säga att det här är ett sätt att ladda in en XML-fil från en annan server in till min egna server, så att jag själv kan redigera XML-filen så som jag vill?
EDIT:
Jag får följande fel nu:
ASP Kod: ASP 0177
Fel nummer: -2147221005
Kategori: Serverobjekt
Rad: 40
Kolumn: -1
Beskrivning: Server.CreateObject misslyckades
Mer detaljerad: Ogiltig klassträng %>