VideMedlem sedan dec. 19996 094 inlägg
Hejsan, håller på och testar lite... det är så att jag använder ASPs inbyggda parser för att presentera XML-filen mha en XSL-fil.
Nuvarande kod:
sourceFile = Request.ServerVariables("Appl_physical_path") & "xml\contacts.xml"
styleFile = Request.ServerVariables("Appl_physical_path") & "xml\contacts.xsl"
Set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.load(sourceFile)
Set style = Server.CreateObject("Microsoft.XMLDOM")
style.async = false
style.load(styleFile)
HTMLcode = source.transformNode(style)
Response.write HTMLcode
Jag vill alltså göra såhär:
sourceFile = "http://www.lurgoyf.com/xml/contacts.xml"
styleFile = Request.ServerVariables("Appl_physical_path") & "xml\contacts.xsl"
Set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.load(sourceFile)
Set style = Server.CreateObject("Microsoft.XMLDOM")
style.async = false
style.load(styleFile)
HTMLcode = source.transformNode(style)
Response.write HTMLcode
Men det fungerar inte. Hur skall jag gå tillväga?
------------------
Vide rox = new Vide();
rox.learn("C#");
webeye.nu
MattiasWMedlem sedan jan. 2000143 inlägg
Så här gör jag i Delphi. Använder samma COM objekt som du gör i ASP, lite annan syntax bara:
Jag använder XMLHTTPRequest för att först hämta XML’en från en URL.
XMLHTTP:= CoXMLHTTPRequest.Create;
XMLHTTP.open('GET', 'http://www.slashdot.org/slashdot.xml', False, Unassigned, Unassigned);
XMLHTTP.setRequestHeader('Content-type', 'text/xml'); // Describe what we are expecting.
XMLHTTP.send(Unassigned); // Go get it.
XMLDoc:= CoDomDocument.Create;
XMLDoc.async:= False;
XMLDoc.loadXML(XMLHTTP.ResponseText);
Blir väl ungefär så här i ASP:
Set XMLHTTP = Server.CreateObject("Microsoft.XMLHTTPRequest")
XMLHTTP.open('GET', 'http://www.slashdot.org/slashdot.xml', False);
XMLHTTP.setRequestHeader('Content-type', 'text/xml'); ' Describe what we are expecting.
XMLHTTP.send(); ' Go get it.
Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.loadXML(XMLHTTP.ResponseText)
VideMedlem sedan dec. 19996 094 inlägg
Tackar... men han verkar inte kunna skapa objektet XMLHTTPRequest, är det något som har implementerats i verison 4 av MSXML?
------------------
Vide rox = new Vide();
rox.learn("C#");
webeye.nu
MattiasWMedlem sedan jan. 2000143 inlägg
Ursäkta mig.
Jag hittade denna kod-snutt från MSDN
The following code snippet comes from a VBScript file and illustrates simple interaction between a client application and a URL—in particular, an ASP page:
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "GET", "http://expoware/test.asp", False
xmltext = "<magazine>MIND</magazine>"
Set xmldom = CreateObject("Microsoft.XMLDOM")
xmldom.loadXML xmltext
xmlhttp.send xmldom
MsgBox xmlhttp.responseText
Heter tydligen Microsoft.XMLHTTP istället för Microsoft.XMLHTTPRequest.
Där ser man
VideMedlem sedan dec. 19996 094 inlägg
Hmm... det objektet fanns... men sidan visas utan själva innehållet (XMLfilen) som skall formateras av min XSL-fil.
Några tips om tutorialer i ämnet HTTP med XML?
Tack för hjälpen hitintills... :)
------------------
Vide rox = new Vide();
rox.learn("C#");
webeye.nu
MattiasWMedlem sedan jan. 2000143 inlägg
Jag sökte på efter "XMLHTTPRequest" på msdn.microsoft.com och hittade denna sida http://msdn.microsoft.com/library/periodic/period00/cutting0400.htm
Du kan även läsa om IXMLHTTPRequest på denna sida http://msdn.microsoft.com/library/psdk/xmlsdk/xmld8bp0.htm
Har du prova att skriva ut innehållet från "http://www.lurgoyf.com/xml/contacts.xml" utan att köra det genom XMLDOM?
VideMedlem sedan dec. 19996 094 inlägg
Jag har testat att skriva ut innehållet och då skapas sidan korrekt (utan XSL).
Men hur går jag härifrån, när jag använder XMLDOM så laddar man ju en fil, men nu vill jag ju köra en sträng genom XSL-parsern.
*letar vidare*
------------------
Vide rox = new Vide();
rox.learn("C#");
webeye.nu
emissionMedlem sedan dec. 19996 095 inlägg
set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.open "GET","http://www.lurgoyf.com/xml/contacts.xml",false
set source = objXMLHTTP.responseXML
osv..
VideMedlem sedan dec. 19996 094 inlägg
Självklart... :e
Tackar så mycket för hjälpen båda två... :)
------------------
Vide rox = new Vide();
rox.learn("C#");
webeye.nu
daPhilMedlem sedan apr. 2001151 inlägg
emission skrev:
set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.open "GET","http://www.lurgoyf.com/xml/contacts.xml",false
set source = objXMLHTTP.responseXML
osv..
Vadå "osv.."? Hur får jag in XSL referensen i koden?
SPiNMedlem sedan mars 20005 832 inlägg
Ur Vides första inlägg:
Set style = Server.CreateObject("Microsoft.XMLDOM")
style.async = false
style.load(styleFile)
HTMLcode = source.transformNode(style)
source och style är objekt av typen Microsoft XMLDOM, med metoden transformNode() kan du använda ditt XSL-dokument ( style ) mot XML-filen ( source ).
daPhilMedlem sedan apr. 2001151 inlägg
Jag får det absolut inte att funka.
set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.open "GET","http://123.123.123.123:8000/admin.cgi?mode=viewxml",false, "xxxx", "xxxx"
set sourceFile = objXMLHTTP.responseXML
styleFile = Server.Mappath("template.xsl")
Set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.load(sourceFile)
Set style = Server.CreateObject("Microsoft.XMLDOM")
style.async = false
style.load(styleFile)
HTMLcode = source.transformNode(style)
Response.write HTMLcode
En blank sida är allt jag får. URLen till XMLen stämmer. XSL dokumentet är rätt.
daPhilMedlem sedan apr. 2001151 inlägg
Jag fixade det ändå.. Här ifall någon vill ha:
<%
'Manuella variabler
ServerDomain = "www.x.com" 'Domän
ServerPass = "xxxx" 'Lösenord
ServerPort = "xxxx" 'Port
'Den fullständiga adressen
ServerURL = "http://"& ServerDomain &":"& ServerPort &"/admin.cgi?pass="& ServerPass &"&mode=viewxml"
'XMLDOM
Set oXML = Server.Createobject("Microsoft.XMLDOM")
oXML.async = "false"
'XMLHTTP
Set oTrans = Server.CreateObject("Microsoft.XMLHTTP")
oTrans.Open "GET", ServerURL, "false"
oTrans.Send
oXML.LoadXML(oTrans.ResponseText)
Set Songs = oXML.SelectNodes("//SONG")
%>
<b>Låtar:</b>
<br>
<br>
<% For Each Song In Songs %>
<%=Song.selectSinglenode("TITLE").text%><br>
<% Next %>
Men jag lyckades aldrig använda XSL ihop med extern XML via HTTP tyvärr.. Jag trodde XML via HTTP var en av de "stora" plusen med XML? Nåja..
nikoMedlem sedan juni 20022 415 inlägg
Tycker steget över XMLHTTP känns onödigt.
<%
'Manuella variabler
ServerDomain = "www.x.com" 'Domän
ServerPass = "xxxx" 'Lösenord
ServerPort = "xxxx" 'Port
'Den fullständiga adressen
ServerURL = "http://"& ServerDomain &":"& ServerPort &"/admin.cgi?pass="& ServerPass &"&mode=viewxml"
'XMLDOM
Set oXML = Server.Createobject("Microsoft.XMLDOM")
oXML.async = false
oXML.setProperty "ServerHTTPRequest", true
oXML.Load ServerURL
Set Songs = oXML.SelectNodes("//SONG")
%>
<b>Låtar:</b>
<br>
<br>
<% For Each Song In Songs %>
<%=Song.selectSinglenode("TITLE").text%><br>
<% Next %>
.. borde gå lika bra.