Hej, Hej! Hej Anders, Ja, jag har sett den där "deprecated"-flaggan. Man tycker MS borde kunna komma fram med alternativa lösningar för att få "gamla" o "nya" miljöer att lira, innan man slutar supporta saker o ting. Mmm, jag håller med dig. Alla har ju inte möjlighet att kasta bort en fullt fungerande "gammal" ASP3 lösning för att skriva om allt från början i .NET... Du kan ju använda .net för bara just en pryl och sedan fortsätta använda asp. Det betyder ju inte att du behöver göra om hela lösningen för det.Läsa SOAP-svar från XML Web Service i ASP3/VBScript
Jag skulle behöva lite tips på hur man bäst läser SOAP-formaterad XML (svar från en XML Web Service) från ASP3 (klassiska ASP, inte .NET), VBScript eller motsvarande.
Jag använder Microsofts XMLHTTP för att anropa tjänsten och Microsoft XMLDOM för att fånga upp svaret.
Mitt problem uppstår när jag från DOMDocument:et med hjälp av XPath vill plocka ut informationen. Jag lyckas helt enkelt inte skriva rätt sökvägar som hanterar namespaces-attribut och annat.
Det är ju förstås lätt att göra en "fusklösning" genom att helt enkelt skala bort SOAP-taggarna innan jag läser det som ett vanligt XML-dokument... men hur borde man egentligen göra det?
Någon av er som har erfarenhet av att arbeta mot XML Web Services från ASP3 sedan tidigare? Hur brukar ni lösa saker och ting?
Här är ett exempel på hur ett svar skulle kunna se ut:
<code>
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" mlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body>
<GetProductSubtypesResponse xmlns="http://www.internet.com/mynamespace">
<GetProductSubtypesResult>
<Type>
<ID>234</ID>
<Name>Lägenhet</Name>
<SubTypes>
<Type>
<ID>123</ID>
<Name>2 rum</Name>
</Type>
</SubTypes>
</Type>
<Type>
<ID>56</ID>
<Name>Hotell</Name>
<SubTypes/>
</Type>
</GetProductSubtypesResult>
</GetProductSubtypesResponse>
</soap:Body>
</soap:Envelope>
</code>
Tack på förhand!
MagdalenaSv: Läsa SOAP-svar från XML Web Service i ASP3/VBScript
Detta kanske inte är nåt alternativ för dig, men det finns ett verktyg som heter Soap Toolkit som delvis är till för att dra nytta av Web Services "före" .NET. Med denna kan man nyttja ADO som klient av en WS. Kodexempel kan se ut som t ex:
<code>
Dim soapClient As Object
Set soapClient = CreateObject("MSSOAP.SoapClient30")
Call soapClient.MSSoapInit("http://localhost/testlistener/TestSoap.wsdl", "TestSoap")
strXML = soapClient.GetCustomerByCountry(txtCountry.Text)
Set soapClient = Nothing
Set st = New ADODB.Stream
st.Open
st.WriteText strXML
st.Position = 0
Set rs = New ADODB.Recordset
rs.Open st
st.Close
</code>
Detta förutsätter att man då använt Soap Toolkit för att generera proxyn. Verktyget går att ladda ner från MS web.Sv:Läsa SOAP-svar från XML Web Service i ASP3/VBScript
Tack för tipset! Jo, jag har redan kollat en hel del på SOAP Toolkit 3.0, men eftersom det är "deprecated" av .NET framework och kommer sluta supportas helt nu i slutet av mars 2005, så kändes det lite fel att förlita sig på det. Fast jag har och inte helt uteslutit möjligheten... Vi får se.
Just nu känns det iaf av många anledningar rätt med det spår jag är inne på för tillfället, så jag skulle bli jätteglad om jag fick rätsida på XPath-frågorna.
Mvh,
MagdalenaSv: Läsa SOAP-svar från XML Web Service i ASP3/VBScript
Kanske denna artikel kan vara till hjälp om du inte sett den sen förut:
http://www.devarticles.com/c/a/ASP/An-Introduction-To-XML-SOAP-Using-ASP-and-VB6Sv:Läsa SOAP-svar från XML Web Service i ASP3/VBScript
Den artikeln hade jag inte läst tidigare, nej. Tack!Sv: Läsa SOAP-svar från XML Web Service i ASP3/VBScript