0

タスクは非常に単純で、XML を使用して別の Web サービスに接続します。
現在のページ (従来の ASP) では、次のコードを使用します。

zoekpcode=UCASE(Request.Querystring("zoekpcode")) <-- postal-code
zoeknr=Request.Querystring("zoeknr") <-- house-number

PC=Trim(Replace(zoekpcode," ",""))
NR=Trim(Replace(zoeknr," ",""))

strGetAddress="https://ws1.webservices.nl/rpc/get-simplexml/addressReeksPostcodeSearch/*~*/*~*/" & PC & NR

set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.open "GET", strGetAddress , false
xml.send ""
strStatus = xml.Status
If Len(PC)>5 and Len(NR)>0 Then
    strRetval = Trim(xml.responseText)
End If

set xml = nothing

'Do something with the result string

考えられるリンクの 1 つ: https://ws1.webservices.nl/rpc/get-simplexml/addressReeksPostcodeSearch/ ~ / ~ /1097ZD49

現在、かみそり(C#)でこれを行う方法を探していますが、Googleで見つけることができる
のは、次の用語(ほとんどの組み合わせ)を試し たJavaScriptで行う方法だけです。

  • かみそり
  • xmlhttp
  • comobject
  • URL からの XML
  • -ジャバスクリプト

結果は、主に JavaScript またはカミソリ刃に関するものでした。
他の結果 (検索comobjects in razorなど) に基づくと、Razor では comobject を使用できないようです。

私の質問に(部分的に)答えているように見えるstackoverflowでこの質問(WebMatrix razor(C#)でXMLを使用する方法)を見つけましたが、外部システム(言及されたWebサービス)へのリンクでも可能ですか?

4

2 に答える 2

0

Ralfの助けを借りて、次のコードにたどり着きました。

public static XmlDocument getaddress(string pcode, string number){
    string serverresponse = "";
    string getlocation = "https://ws1.webservices.nl/rpc/get-simplexml/addressReeksPostcodeSearch/*~*/*~*/" + Request.QueryString["PCODE"] + Request.QueryString["NR"];

    HttpWebRequest req = (HttpWebRequest) WebRequest.Create(getlocation);
    using (var r = req.GetResponse()) {
        using (var s = new StreamReader(r.GetResponseStream())) {
            serverresponse = s.ReadToEnd();
        }
    }

    XmlDocument loader = new XmlDocument();
    loader.LoadXml(serverresponse);
    return loader;
}

public static string getvalue(XmlDocument document, string node){
    string returnval = "";
    var results = document.SelectNodes(node);
    foreach(XmlNode aNode in results){
        returnval = returnval + "," + aNode.InnerText;
    }

    return returnval.Substring(1);
}
于 2013-10-29T08:13:01.027 に答える
0

ここでは、Razor Web ページでの Web サービスの消費について説明しました: http://www.mikesdotnetting.com/Article/209/Consuming-Feeds-And-Web-Services-In-Razor-Web-Pages

Web サービスが SOAP の場合は、Visual Studio (無料の Express エディションで問題ありません) を使用してサービス参照を追加し、そこから作業するのが最善です。それ以外の場合は、記事の ATOM の例のように、Linq To XML を使用して XML を XDocument に直接読み込むことができます。

var xml = XDoxument.Load("https://ws1.webservices.nl/rpc/get-simplexml/blah/blah");

次に、System.Xml.Linq API を使用してドキュメントをクエリします。

于 2013-10-28T14:11:36.540 に答える