1. 程式人生 > >Xml WebService完全例項解析(四)

Xml WebService完全例項解析(四)

最近時間太少了,馬上要走了,這篇文章就算是結尾吧,可能說明會少些,程式碼多些.

     接上篇文章,我們先簡單說明下繫結函式.首先例項化ServiceA,這個和一般類的例項化並沒有不同..接下來用xmlNode1來接受函式的返回值,接下來是構造xml,並將其轉化為dataset,這是通用的方法,如果是剛接觸不久的朋友,最好能記下這種方法.

      接下來給出非同步呼叫兩個服務的程式碼

//繫結資料
  public void BindData()
  {
   IAsyncResult ar1;
   IAsyncResult ar2;
   serviceA=new SiteA.Service1();
   serviceB=new SiteB.Service1();
   DataSet ds=new DataSet();
   XmlNode xmlNode1,xmlNode2;
   XmlDataDocument xd=new XmlDataDocument();
   StringBuilder xmlString1,xmlString2;
   //--簡單的非同步呼叫
   ar1=serviceA.BeginGetSiteAData(strSearch,null,null);
   ar2=serviceB.BeginGetSiteAData(strSearch,null,null);
   xmlNode1=serviceA.EndGetSiteAData(ar1);
   xmlNode2=serviceB.EndGetSiteAData(ar2);
   //----------
   if(xmlNode1==null&&xmlNode2==null) //--儲存過程執行失敗
    return;

   xmlString1=new StringBuilder(xmlNode1.OuterXml);
   xmlString2=new StringBuilder(xmlNode2.OuterXml);
   xmlString1=MakeNewXmlString(xmlString1,xmlString2);  //生成新的xml
   if(xmlString1.ToString().Equals("<NewDataSet xmlns=/"/"></NewDataSet>"))
    return ;
   xd.LoadXml(xmlString1.ToString());
   ds.ReadXml(new XmlNodeReader(xd));
   DataGrid1.DataSource=ds.Tables["list"].DefaultView;
   DataGrid1.DataBind();
  }

  //生成新XML
  public StringBuilder MakeNewXmlString(StringBuilder str1,StringBuilder str2)
  {
   str1=str1.Replace("</NewDataSet>","");
   str2=str2.Replace("<NewDataSet xmlns=/"/">","");
   str1.Append(str2.ToString());
   return str1;
  }

    這有兩個需要注意的地方,一個是xml構造,還有就是非同步呼叫的實現,請讀者,自己理解

    下面講下通過dll來引用webservice的方法,我只把流程介紹下.

    首先,在ie輸入服務的地址,如:http://www.xxx.com/service.asmx

   然後寫輸入http://www.xxx.com/service.asmx?wsdl

   開啟後,另存為xxx.wsdl

   然後用vs的命令提示符來編譯:wsdl /namespace:SiteA ServiceA.wsdl

  生成名字空間為sitea的代理類

  最後csc /out:ServiceA.dll /t:library Service1.cs ,其中service1.cs為代理類檔案

 最後引用dll就可以了.

  到這裡,我們的例子基本也就介紹完了,由於個人的原因,最後一篇可能寫的比較倉促,非常慚愧.

  不知道寫這麼多,對學習中的朋友會不會有幫助,裡面的東西,很多也算是個人理解,如果出錯,還請各位海涵:)

  以後可能上網的時間會很少,要考研了,如果你有什麼需要幫助的或是疑惑的地方,可以[email protected]聯絡我,如果上網的話,一定會回的.

相關推薦

Xml WebService完全例項解析()

最近時間太少了,馬上要走了,這篇文章就算是結尾吧,可能說明會少些,程式碼多些.      接上篇文章,我們先簡單說明下繫結函式.首先例項化ServiceA,這個和一般類的例項化並沒有不同..接下來用xmlNode1來接受函式的返回值,接下來是構造xml,並將其轉化為data

手把手教你SOAP訪問webservice並DOM解析返回的XML數據(轉)

3層 cor lock pos dom解析 tco 前言 nbsp encoding http://blog.csdn.net/u012534831/article/details/51357111 前言: 目前我們項目組還在采用webservice這種http方式,並且某

spring 官方文件的介面理解整理()型別轉換spring例項解析

上篇文章解析了spring型別轉換的介面和他們的分工,怎麼通過設計模式實現轉換功能。 這篇需要些上篇的知識,如果沒有看可以從這兒跳轉spring 官方文件的介面理解整理(三)型別轉換 一、準備新建Maven專案,pom.xml內容如下 <properties>

解析xml的兩種方式 ,使用jaxp查詢xml結點的例項

解析xml的兩種方式    使用jaxp查詢xml結點的例項   person.xml    TestJaxp.java import org.w3c.dom.Document; import org.w3c.d

TSM檔案格式及例項解析)——string的排列

目錄 引: 資料 簡析 Indexes: blocks: 關聯string 小結: TSM檔案格式現已基本明瞭,某些壓縮演算法有空再去研究一下。 引: 現在想知道未壓縮的檔案格式是怎樣。 但是翻遍官方配置文件 https://docs.influx

Android Volley完全解析 ,帶你從原始碼的角度理解Volley

                經過前三篇文章的學習,Volley的用法我們已經掌握的差不多了,但是對於Volley的工作原理,恐怕有很多朋友還不是很清楚。因此,本篇文章中我們就來一起閱讀一下Volley的原始碼,將它的工作流程整體地梳理一遍。同時,這也是Volley系列的最後一篇文章了。其實,Volley的

Spring IOC容器啟動流程原始碼解析()——初始化單例項bean階段

目錄 1. 引言 2. 初始化bean的入口 3 嘗試從當前容器及其父容器的快取中獲取bean 3.1 獲取真正的beanName 3.2 嘗試從當前容器的快取中獲取bean 3.3 從父容器中查詢bean 3.4 解析bean的依賴 3.5 再一

C#使用SOAP獲取webservice例項解析

程式碼如下: using System.IO; using System.Xml; using System.Net; namespace ConsoleApplicationTest2 { class SOAPTest {

DOM解析XML文件例項之學生管理系統

/** *@ author StormMaybin *@ date 2016-10-06 */ 生命不息,奮鬥不止! 需求分析: 用XML文件來儲存學生資訊, 通過對XML文件的增刪改,來實現管理學生資訊的功能。 主體結構

Java使用SOAP獲取webservice例項解析

這篇文章是根據一位cnblogs上的一位大大,做了些修改而已 他的文章:走嘍~~ 進入正文,為了怕資源丟失,我選擇了全部黏貼複製了一遍! 以下是 SOAP 1.1 請求和響應示例。所顯示的佔位符需替換為實際值。 [http://www.webxml.com.cn/we

Retrofit完全解析():Type

終於可以開啟Retrofit > Type之旅了 從Utils類開始 getRawType /** * 獲取物件的Type型別所對應的最接近的Class型別 * 1.Type分為Class型別跟四大T

jdom解析xml檔案簡單例項

為什麼要用JDOM? JDOM是網上流行開源的XML的操作類,用起來簡單方便.與他對應的還有幾個非常流行的框架,dom4j也是很好用的。但他們各有側重點。下面是一個jdom的使用例子,有JAVA功底的人一下就應該能看懂。 jdom官方地址 http://www.jdom.org/ 配製檔案(要放在src的

樹莓派配置完全手冊()開發例項

內容提要 本章我們將介紹三個開發例項來檢驗環境搭建是否成功以及為以後的學習奠定基礎。我們將從最簡單的顯示圖片入手,直到編寫完整的具有一定功能的程式來達到鞏固學習的目的。同時我們也將學習如何將PC端的

DOM4J操作XML(包括封裝和解析)

針對 con auth 名稱 解析 static 格式化 read urn DOM4J操作XML(包括封裝和解析) 先來看看dom4j中相應XML的DOM樹建立的繼承關系 針對於XML標準定義。相應於圖2-1列出的內容,dom4j提供了下面實現:

xml中倆種解析方式

print source 想要 tree urn 由於 oot con 一個 兩種解析方式 1、from xml.etree import ElementTree as ET 利用ElementTree模塊下的xml方法可以把一個字符串類型的東西轉換成Element類,

【文件處理】xml 文件 SAX解析

student 內容 訪問 sets display xtend style hide news SAX的全稱是Simple APIs for XML,也即XML簡單應用程序接口。 與DOM不同,SAX提供的訪問模式是一種順序模式,這是一種快速讀寫XML數據的方式。 當使用

xml的兩種解析方式

name 字符 system main ner exce pub void ref xml解析是日常項目中用到比較多的技能。不管是配置參數或者數據都能夠保存在xml文件裏。同一時候也能夠將xml作為數據傳輸的一種格式。本文將介紹兩種基本解析方式:xml字符串解析和xml

XML文件的解析

XML 顯示 str 區分大小寫 img html 大小 document 只有一個 操作XML的對象屬性和方法: 對象 屬性和方法 說明 XmlD

XML字符串解析

reader exceptio source () getx row roo exce XML 字符串例子: import java.io.StringReader;import org.dom4j.Document;import org.dom4j.DocumentExc

SpringMVC源代碼學習外傳(一)xml命名空間的解析NamespaceHandler

java ee 都是 replace 請求處理流程 reader spring ces tor source 以下內容基於書:《看透SpringMVC-源代碼分析與實踐》 基本照搬。。。用於自己查閱備忘。 加上外傳關鍵字的是討論一些SpringMVC的特定類的使用方法,