Solved

Limit XML output result from SOAP

Posted on 2009-06-30
1
525 Views
Last Modified: 2013-11-18
I have been successfully grabbing data from a server using SOAP. But now I want to take it a step further.

How can I limit the output of items to 10 items for example, rather than the whole catalog?

Here is how I currently grab the data from the server.
<%

Dim objXMLHTTP : SET  objXMLHTTP = Server.CreateObject("Msxml2.XMLHTTP.3.0")

Dim objOutputXMLDoc : Set objOutputXMLDoc = Server.CreateObject("MSXML.DOMDocument")

 

Dim strMethodPkg

Dim strMethodResultXML

 

Dim catID            :      catID = 89

Dim Html_Strip      : Html_Strip = 1

Dim AffiliateID		: AffiliateID = 61

 

 

strMethodPkg ="<?xml version=""1.0"" encoding=""utf-8""?>"

strMethodPkg = strMethodPkg &"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"

strMethodPkg = strMethodPkg & "<soap:Body>"

strMethodPkg = strMethodPkg & "<Product_List_Xml xmlns=""http://www.estaronline.com/webservices/"">"

strMethodPkg = strMethodPkg & "<CatalogueID>" & catID & "</CatalogueID>"

strMethodPkg = strMethodPkg & "<Html_Strip>" & Html_Strip & "</Html_Strip>"

strMethodPkg = strMethodPkg & "<AffiliateID>" & AffiliateID &"</AffiliateID>"

strMethodPkg = strMethodPkg & "</Product_List_Xml></soap:Body></soap:Envelope>"

 

objXMLHTTP.open "post", "http://www.servernamegoeshere.com/AffiliateServices.asmx", False

 

objXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8"

objXMLHTTP.setRequestHeader "Content-Length", Len(strMethodPkg)

 

 

objXMLHTTP.setRequestHeader "SOAPAction", "http://www.estaronline.com/webservices/Product_List_Xml"

 

Call objXMLHTTP.send(strMethodPkg)

 

strMethodResultXML = objXMLHTTP.responseText

Dim sXml 

objOutputXMLDoc.LoadXml(strMethodResultXML)

sXml = objOutputXMLDoc.SelectSingleNode("//Product_List_XmlResult").ChildNodes(0).xml
 

Dim oXML 

Set oXML = Server.CreateObject("MSXML2.DOMDocument.3.0")

Dim oXSL

Set oXSL= Server.CreateObject("Msxml2.FreeThreadedDOMDocument.3.0")

Dim oTmpl

Set oTmpl= Server.CreateObject("Msxml2.XSLTemplate.3.0")

Dim oProc
 

oXSL.async = false

oXSL.load(Server.MapPath("product.xslt"))

oXML.LoadXml(sXml)
 

oTmpl.stylesheet = oXSL
 

Set oProc= oTmpl.createProcessor()

oProc.input = oXML

 

oProc.addParameter "catID", catID

oProc.output = Response

oProc.transform()

 

%>

Open in new window

0
Comment
Question by:Pete_Zed
1 Comment
 
LVL 27

Accepted Solution

by:
BigRat earned 500 total points
Comment Utility
Server Side: Since the SOAP call is for a Web Service, the service *might* offer such a capability. In that case the documenation associated with the service (here Product_List_Xml) might show an extra parameter.

Client Side: you'd have to modify product.xslt not to process too many nodes.

Hope that's a start.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Most of the sites are being standardized with W3C Web Standards. W3C provides lot of web standard services to the web. They have the web specification, process and documentation for all the web standards. You can apply HTML, CSS and Accessibility st…
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now