Contoh SOAP paling sederhana

241

Apa contoh SOAP paling sederhana menggunakan Javascript?

Agar bermanfaat, jawabannya harus:

  • Berfungsi (dengan kata lain benar-benar berfungsi)
  • Kirim setidaknya satu parameter yang dapat diatur di tempat lain dalam kode
  • Memproses setidaknya satu nilai hasil yang dapat dibaca di tempat lain dalam kode
  • Bekerja dengan sebagian besar versi browser modern
  • Jadilah sejelas dan sesingkat mungkin, tanpa menggunakan perpustakaan eksternal
Thomas Bratt
sumber
5
Menjadi sederhana dan jelas dapat bertentangan dengan tidak menggunakan perpustakaan eksternal. Apakah Anda benar-benar ingin menulis WSDL Anda sendiri -> JS class converter?
mikemaccana
19
Saya punya pertanyaan: jika saya melihat pertanyaan ini sebagai orang pertama yang saya harapkan akan diturunkan dengan komentar seperti "tampilkan beberapa kode, ini bukan 'sewa koder'". Bukan masalah pribadi, Thomas :) Tapi saya tidak mengerti bagaimana komunitas memutuskan apa yang baik dan buruk.
最 白 目
4
Hei, jangan khawatir. Saya kira inti pertanyaannya adalah bahwa ada banyak cara menulis klien SOAP menggunakan JavaScript. Banyak dari mereka yang jelek, jadi saya berharap beberapa ide untuk menjaganya tetap bersih.
Thomas Bratt
@dan itu karena 1. pertanyaan ini agak lama, masih ada banyak pertanyaan mendasar yang diajukan yang menurut tradisi memiliki banyak upvotes, 2. ini menjelaskan masalah yang agak sederhana, jadi mungkin cenderung menarik pengguna baru yang mungkin memilih dengan prinsip "hei aku juga ingin tahu itu!" alih-alih "hei, pertanyaan ini menunjukkan upaya penelitian. Bermanfaat dan jelas!". Karena pertanyaan ini kurang dalam pendapat saya, saya menurunkannya. Tidak ada yang pribadi juga: D
phil294
@ThomasBratt Saya mungkin akan melanjutkan ini pada meta, tetapi pertanyaan-pertanyaan semacam itu layak mendapat kesempatan. Ini adalah pertanyaan ideal untuk pustaka turunan atau basis pengetahuan. Tapi mungkin saja jawaban yang diterima juga pantas mendapat insentif untuk kerja keras tambahan? Masih tidak ada yang lebih diterima daripada SO, jadi di mana lagi? Bahkan SO mencoba dan bermain-main dengan gagasan membangun situs dokumentasi - dan gagal. Tidak ada yang menggantikan SO ...
YoYo

Jawaban:

201

Ini adalah Klien SOAP JavaScript paling sederhana yang dapat saya buat.

<html>
<head>
    <title>SOAP JavaScript Client Test</title>
    <script type="text/javascript">
        function soap() {
            var xmlhttp = new XMLHttpRequest();
            xmlhttp.open('POST', 'https://somesoapurl.com/', true);

            // build SOAP request
            var sr =
                '<?xml version="1.0" encoding="utf-8"?>' +
                '<soapenv:Envelope ' + 
                    'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
                    'xmlns:api="http://127.0.0.1/Integrics/Enswitch/API" ' +
                    'xmlns:xsd="http://www.w3.org/2001/XMLSchema" ' +
                    'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">' +
                    '<soapenv:Body>' +
                        '<api:some_api_call soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
                            '<username xsi:type="xsd:string">login_username</username>' +
                            '<password xsi:type="xsd:string">password</password>' +
                        '</api:some_api_call>' +
                    '</soapenv:Body>' +
                '</soapenv:Envelope>';

            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4) {
                    if (xmlhttp.status == 200) {
                        alert(xmlhttp.responseText);
                        // alert('done. use firebug/console to see network response');
                    }
                }
            }
            // Send the POST request
            xmlhttp.setRequestHeader('Content-Type', 'text/xml');
            xmlhttp.send(sr);
            // send request
            // ...
        }
    </script>
</head>
<body>
    <form name="Demo" action="" method="post">
        <div>
            <input type="button" value="Soap" onclick="soap();" />
        </div>
    </form>
</body>
</html> <!-- typo -->
stackoverflow128
sumber
2
Bagaimana dengan mengirim <soapenv: Header>? Saya mencoba membuat tag tajuk saya ke dalam variabel sr, namun server menerima soapenv kosong: Header
Boiler Bill
Ini berhasil untuk saya! (setelah mengganti URL Layanan SOAP dengan yang asli dan mematikan batasan lintas domain pada browser saya, seperti yang tersirat oleh @Prestaul)
Niko Bellic
Saya mengembangkan aplikasi lintas platform dalam teks asli untuk android / ios. Saya ingin menggunakan layanan web SOAP. Tolong bimbing saya untuk hal yang sama. Saya menggunakan kode di atas untuk permintaan SOAP & saya ingin format respons SOAP, bagaimana menangani respons. Silakan tinjau pertanyaan saya - stackoverflow.com/questions/37745840/…
Onkar Nene
Harus menggunakan ini baru-baru ini untuk mendukung kode lama. Mengatasi masalah dengan tajuk yang hilang yang membuat "Ketidakcocokan ContractFilter di EndpointDispatcher". Menambahkan xmlhttp.setRequestHeader('SOAPAction', 'http://myurl.com/action');sesaat sebelum xmlhttp.send(sr)memperbaikinya.
RDRick
80

Ada banyak kebiasaan dalam cara browser menangani XMLHttpRequest, kode JS ini akan berfungsi di semua browser:
https://github.com/ilinsky/xmlhttprequest

Kode JS ini mengubah XML menjadi objek JavaScript yang mudah digunakan:
http://www.terracoder.com/index.php/xml-objectifier

Kode JS di atas dapat dimasukkan dalam halaman untuk memenuhi persyaratan perpustakaan eksternal Anda.

var symbol = "MSFT"; 
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "http://www.webservicex.net/stockquote.asmx?op=GetQuote",true);
xmlhttp.onreadystatechange=function() {
 if (xmlhttp.readyState == 4) {
  alert(xmlhttp.responseText);
  // http://www.terracoder.com convert XML to JSON 
  var json = XMLObjectifier.xmlToJSON(xmlhttp.responseXML);
  var result = json.Body[0].GetQuoteResponse[0].GetQuoteResult[0].Text;
  // Result text is escaped XML string, convert string to XML object then convert to JSON object
  json = XMLObjectifier.xmlToJSON(XMLObjectifier.textToXML(result));
  alert(symbol + ' Stock Quote: $' + json.Stock[0].Last[0].Text); 
 }
}
xmlhttp.setRequestHeader("SOAPAction", "http://www.webserviceX.NET/GetQuote");
xmlhttp.setRequestHeader("Content-Type", "text/xml");
var xml = '<?xml version="1.0" encoding="utf-8"?>' +
 '<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/">' + 
   '<soap:Body> ' +
     '<GetQuote xmlns="http://www.webserviceX.NET/"> ' +
       '<symbol>' + symbol + '</symbol> ' +
     '</GetQuote> ' +
   '</soap:Body> ' +
 '</soap:Envelope>';
xmlhttp.send(xml);
// ...Include Google and Terracoder JS code here...

Dua opsi lain:

Chris Stuart
sumber
apa yang harus saya lakukan jika saya ingin memberikan beberapa amplop?
Ajay Patel
saya menggunakan kode di atas, tetapi xmlhttp.responseText selalu menghasilkan null.can u berikan saya somelinks untuk mengatasi kesalahan
user969275
Tautan ketika Google Code dihapus: github.com/ilinsky/xmlhttprequest
ToastyMallows
48

Ini tidak dapat dilakukan dengan JavaScript langsung kecuali layanan web berada pada domain yang sama dengan halaman Anda. Sunting: Pada tahun 2008 dan di IE <10 ini tidak dapat dilakukan dengan javascript lurus kecuali layanan berada pada domain yang sama dengan halaman Anda.

Jika layanan web ada di domain lain [dan Anda harus mendukung IE <10] maka Anda harus menggunakan halaman proxy di domain Anda sendiri yang akan mengambil hasilnya dan mengembalikannya kepada Anda. Jika Anda tidak memerlukan dukungan IE lama maka Anda perlu menambahkan dukungan CORS ke layanan Anda. Dalam kedua kasus, Anda harus menggunakan sesuatu seperti lib yang disarankan timyates karena Anda tidak ingin harus menguraikan hasilnya sendiri.

Jika layanan web berada di domain Anda sendiri maka jangan gunakan SOAP. Tidak ada alasan bagus untuk melakukannya. Jika layanan web ada di domain Anda sendiri maka modifikasi sehingga dapat mengembalikan JSON dan menyelamatkan diri Anda dari kesulitan berurusan dengan semua kerepotan yang datang dengan SOAP.

Jawaban singkatnya adalah: Jangan membuat permintaan SOAP dari javascript. Gunakan layanan web untuk meminta data dari domain lain, dan jika Anda melakukannya maka parsing hasilnya di sisi server dan kembalikan dalam bentuk js friendly.

Prestaul
sumber
1
Tujuannya adalah agar server SOAP juga melayani halaman HTML untuk pengujian dan evaluasi sederhana. Klien akan berada di domain yang sama. Tidak menggunakan SABUN untuk ujung depan tampaknya menjadi pandangan yang diterima. Ada komentar mengapa? Silakan tambahkan ke pertanyaan baru: stackoverflow.com/questions/127038
Thomas Bratt
1
Tidak ada gunanya menjawab di sana ... Saya setuju dengan Gizmo pada ketiga poin. XML membengkak dan tantangan untuk ditangani dengan js sementara JSON ringkas dan asli.
Prestaul
10
re "tidak dapat dilakukan": Hari ini dapat dilakukan dengan (kebanyakan) JavaScript langsung, jika klien mendukung Cross-Origin Resource Sharing . Semoga dalam 3-4 tahun ini akan tersedia secara universal.
Constantin
2
@Constantin, CORS akan mengizinkannya jika Anda bersedia hanya mendukung browser yang lebih baru dan jika Anda memiliki kendali terhadap server dan dapat menambahkan dukungan CORS di sana. Yang sedang berkata, saya masih akan berpendapat bahwa panggilan SOAP hanya harus dibuat antara server dan klien harus menggunakan sesuatu yang lebih ramah JS seperti JSON.
Prestaul
1
@NikoBellic mungkin digunakan klien berbasis browser XMLHttpRequest, mungkin melalui perpustakaan seperti jquery. Klien simpul akan menggunakan sesuatu yang lain. Sebagian besar layanan web menggunakan REST sebagai panduan untuk mendesain api mereka, tetapi ada banyak pola yang bagus. Kuncinya di sini adalah bahwa badan permintaan / respons adalah JSON karena klien javascript (browser / node / di mana saja) memahami JSON secara asli.
Prestaul
14

Anda dapat menggunakan plugin jquery.soap untuk melakukan pekerjaan untuk Anda.

Skrip ini menggunakan $ .ajax untuk mengirim SOAPEnvelope. Dapat mengambil XML DOM, string XML atau JSON sebagai input dan responsnya dapat dikembalikan sebagai XML DOM, string XML atau JSON juga.

Contoh penggunaan dari situs:

$.soap({
    url: 'http://my.server.com/soapservices/',
    method: 'helloWorld',

    data: {
        name: 'Remy Blom',
        msg: 'Hi!'
    },

    success: function (soapResponse) {
        // do stuff with soapResponse
        // if you want to have the response as JSON use soapResponse.toJSON();
        // or soapResponse.toString() to get XML string
        // or soapResponse.toXML() to get XML DOM
    },
    error: function (SOAPResponse) {
        // show error
    }
});
Yaakov Ellis
sumber
8

Thomas:

JSON lebih disukai untuk penggunaan ujung depan karena ini adalah javascript. Karenanya Anda tidak memiliki XML untuk ditangani. SABUN adalah sakit tanpa menggunakan perpustakaan karena ini. Seseorang menyebutkan SOAPClient, yang merupakan perpustakaan yang baik, kami mulai dengan itu untuk proyek kami. Namun itu memiliki beberapa keterbatasan dan kami harus menulis ulang potongan besar itu. Ini telah dirilis sebagai SOAPjs dan mendukung melewatkan objek kompleks ke server, dan menyertakan beberapa contoh kode proksi untuk menggunakan layanan dari domain lain.

Richard June
sumber
2
"JSON lebih disukai untuk penggunaan ujung depan karena ini javascript." - JSON bukan JavaScript. (Hanya terlihat seperti JavaScript.)
nnnnnn
2
en.wikipedia.org/wiki/JSON - Secara literal berarti "Notasi Objek JavaScript", dan sementara saya setuju bahwa JSON adalah spesifikasi bukan bahasa dan karenanya jelas "bukan javascript" Anda harus setuju bahwa cara namanya dapat mudah membingungkan orang.
P. Roe
8

Adakah yang sudah mencoba ini? https://github.com/doedje/jquery.soap

Tampaknya sangat mudah diimplementasikan.

Contoh:

$.soap({
url: 'http://my.server.com/soapservices/',
method: 'helloWorld',

data: {
    name: 'Remy Blom',
    msg: 'Hi!'
},

success: function (soapResponse) {
    // do stuff with soapResponse
    // if you want to have the response as JSON use soapResponse.toJSON();
    // or soapResponse.toString() to get XML string
    // or soapResponse.toXML() to get XML DOM
},
error: function (SOAPResponse) {
    // show error
}
});

akan menghasilkan

<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <helloWorld>
        <name>Remy Blom</name>
        <msg>Hi!</msg>
    </helloWorld>
  </soap:Body>
</soap:Envelope>
geekasso
sumber
4
<html>
 <head>
    <title>Calling Web Service from jQuery</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#btnCallWebService").click(function (event) {
                var wsUrl = "http://abc.com/services/soap/server1.php";
                var soapRequest ='<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/">   <soap:Body> <getQuote xmlns:impl="http://abc.com/services/soap/server1.php">  <symbol>' + $("#txtName").val() + '</symbol>   </getQuote> </soap:Body></soap:Envelope>';
                               alert(soapRequest)
                $.ajax({
                    type: "POST",
                    url: wsUrl,
                    contentType: "text/xml",
                    dataType: "xml",
                    data: soapRequest,
                    success: processSuccess,
                    error: processError
                });

            });
        });

        function processSuccess(data, status, req) { alert('success');
            if (status == "success")
                $("#response").text($(req.responseXML).find("Result").text());

                alert(req.responseXML);
        }

        function processError(data, status, req) {
        alert('err'+data.state);
            //alert(req.responseText + " " + status);
        } 

    </script>
</head>
<body>
    <h3>
        Calling Web Services with jQuery/AJAX
    </h3>
    Enter your name:
    <input id="txtName" type="text" />
    <input id="btnCallWebService" value="Call web service" type="button" />
    <div id="response" ></div>
</body>
</html>

Dengar adalah JavaScript terbaik dengan tutorial SOAP dengan contoh.

http://www.codeproject.com/Articles/12816/JavaScript-SOAP-Client

Hkachhia
sumber
3

Beberapa contoh hebat (dan klien SOAP JavaScript yang sudah jadi!) Di sini: http://plugins.jquery.com/soap/

Periksa readme, dan berhati-hatilah dengan pembatasan browser asal-sama.

kmiklas
sumber
3

Mudah mengkonsumsi layanan SOAP Web dengan JavaScript -> Listing B

function fncAddTwoIntegers(a, b)
{
    varoXmlHttp = new XMLHttpRequest();
    oXmlHttp.open("POST",
 "http://localhost/Develop.NET/Home.Develop.WebServices/SimpleService.asmx'",
 false);
    oXmlHttp.setRequestHeader("Content-Type", "text/xml");
    oXmlHttp.setRequestHeader("SOAPAction", "http://tempuri.org/AddTwoIntegers");
    oXmlHttp.send(" \
<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/'> \
  <soap:Body> \
    <AddTwoIntegers xmlns='http://tempuri.org/'> \
      <IntegerOne>" + a + "</IntegerOne> \
      <IntegerTwo>" + b + "</IntegerTwo> \
    </AddTwoIntegers> \
  </soap:Body> \
</soap:Envelope> \
");
    return oXmlHttp.responseXML.selectSingleNode("//AddTwoIntegersResult").text;
}

Ini mungkin tidak memenuhi semua persyaratan Anda tetapi ini merupakan awal untuk benar-benar menjawab pertanyaan Anda. (Saya mengganti XMLHttpRequest () untuk ActiveXObject ("MSXML2.XMLHTTP") ).

user423430
sumber
1

Contoh paling sederhana terdiri dari:

  1. Mendapatkan input pengguna.
  2. Menulis pesan SOAP XML mirip dengan ini

    <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/">
      <soap:Body>
        <GetInfoByZIP xmlns="http://www.webserviceX.NET">
          <USZip>string</USZip>
        </GetInfoByZIP>
      </soap:Body>
    </soap:Envelope>
  3. POSTing pesan ke url layanan web menggunakan XHR

  4. Parsing respons SOAP XML layanan web serupa dengan ini

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     <soap:Body>
      <GetInfoByZIPResponse xmlns="http://www.webserviceX.NET">
       <GetInfoByZIPResult>
        <NewDataSet xmlns="">
         <Table>
          <CITY>...</CITY>
          <STATE>...</STATE>
          <ZIP>...</ZIP>
          <AREA_CODE>...</AREA_CODE>
          <TIME_ZONE>...</TIME_ZONE>
         </Table>
        </NewDataSet>
       </GetInfoByZIPResult>
      </GetInfoByZIPResponse>
     </soap:Body>
    </soap:Envelope>
  5. Menyajikan hasil kepada pengguna.

Tapi itu banyak kesulitan tanpa perpustakaan JavaScript eksternal.

Konstantin
sumber
9
Bukan contoh Javacript.
Thomas Bratt
Bahkan bagian pertama yang tidak Anda jawab - Berfungsi (dengan kata lain benar-benar berfungsi).
shahar eldad
0
function SoapQuery(){
  var namespace = "http://tempuri.org/";
  var site = "http://server.com/Service.asmx";
  var xmlhttp = new ActiveXObject("Msxml2.ServerXMLHTTP.6.0");
  xmlhttp.setOption(2,  13056 );  /* if use standard proxy */
  var args,fname =  arguments.callee.caller.toString().match(/ ([^\(]+)/)[1]; /*Имя вызвавшей ф-ции*/
  try { args =   arguments.callee.caller.arguments.callee.toString().match(/\(([^\)]+)/)[1].split(",");  
    } catch (e) { args = Array();};
  xmlhttp.open('POST',site,true);  
  var i, ret = "", q = '<?xml version="1.0" encoding="utf-8"?>'+
   '<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/">'+
   '<soap:Body><'+fname+ ' xmlns="'+namespace+'">';
  for (i=0;i<args.length;i++) q += "<" + args[i] + ">" + arguments.callee.caller.arguments[i] +  "</" + args[i] + ">";
  q +=   '</'+fname+'></soap:Body></soap:Envelope>';
            // Send the POST request
            xmlhttp.setRequestHeader("MessageType","CALL");
            xmlhttp.setRequestHeader("SOAPAction",namespace + fname);
            xmlhttp.setRequestHeader('Content-Type', 'text/xml');
            //WScript.Echo("Запрос XML:" + q);
            xmlhttp.send(q);
     if  (xmlhttp.waitForResponse(5000)) ret = xmlhttp.responseText;
    return ret;
  };





function GetForm(prefix,post_vars){return SoapQuery();};
function SendOrder2(guid,order,fio,phone,mail){return SoapQuery();};

function SendOrder(guid,post_vars){return SoapQuery();};
Nick
sumber
0

Angularjs $ http bungkus berdasarkan XMLHttpRequest . Selama konten tajuk diatur, kode berikut akan dilakukan.

"Content-Type": "text/xml; charset=utf-8"

Sebagai contoh:

function callSoap(){
var url = "http://www.webservicex.com/stockquote.asmx";
var soapXml = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://www.webserviceX.NET/\"> "+
         "<soapenv:Header/> "+
         "<soapenv:Body> "+
         "<web:GetQuote> "+
         "<web:symbol></web:symbol> "+
         "</web:GetQuote> "+
         "</soapenv:Body> "+
         "</soapenv:Envelope> ";

    return $http({
          url: url,  
          method: "POST",  
          data: soapXml,  
          headers: {  
              "Content-Type": "text/xml; charset=utf-8"
          }  
      })
      .then(callSoapComplete)
      .catch(function(message){
         return message;
      });

    function callSoapComplete(data, status, headers, config) {
        // Convert to JSON Ojbect from xml
        // var x2js = new X2JS();
        // var str2json = x2js.xml_str2json(data.data);
        // return str2json;
        return data.data;

    }

}
ChokYeeFan
sumber
0

Pertanyaannya adalah 'Apa contoh SOAP paling sederhana menggunakan Javascript?'

Jawaban ini adalah contoh di lingkungan Node.js , bukan browser. (Mari kita beri nama script soap-node.js) Dan kita akan menggunakan layanan web SOAP publik dari Eropa PMC sebagai contoh untuk mendapatkan daftar referensi artikel.

const XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
const DOMParser = require('xmldom').DOMParser;

function parseXml(text) {
    let parser = new DOMParser();
    let xmlDoc = parser.parseFromString(text, "text/xml");
    Array.from(xmlDoc.getElementsByTagName("reference")).forEach(function (item) {
        console.log('Title: ', item.childNodes[3].childNodes[0].nodeValue);
    });

}

function soapRequest(url, payload) {
    let xmlhttp = new XMLHttpRequest();
    xmlhttp.open('POST', url, true);

    // build SOAP request
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {
                parseXml(xmlhttp.responseText);
            }
        }
    }

    // Send the POST request
    xmlhttp.setRequestHeader('Content-Type', 'text/xml');
    xmlhttp.send(payload);
}

soapRequest('https://www.ebi.ac.uk/europepmc/webservices/soap', 
    `<?xml version="1.0" encoding="UTF-8"?>
    <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Header />
    <S:Body>
        <ns4:getReferences xmlns:ns4="http://webservice.cdb.ebi.ac.uk/"
            xmlns:ns2="http://www.scholix.org"
            xmlns:ns3="https://www.europepmc.org/data">
            <id>C7886</id>
            <source>CTX</source>
            <offSet>0</offSet>
            <pageSize>25</pageSize>
            <email>ukpmc-phase3-wp2b---do-not-reply@europepmc.org</email>
        </ns4:getReferences>
    </S:Body>
    </S:Envelope>`);

Sebelum menjalankan kode, Anda perlu menginstal dua paket:

npm install xmlhttprequest
npm install xmldom

Sekarang Anda dapat menjalankan kode:

node soap-node.js

Dan Anda akan melihat hasilnya seperti di bawah ini:

Title:  Perspective: Sustaining the big-data ecosystem.
Title:  Making proteomics data accessible and reusable: current state of proteomics databases and repositories.
Title:  ProteomeXchange provides globally coordinated proteomics data submission and dissemination.
Title:  Toward effective software solutions for big biology.
Title:  The NIH Big Data to Knowledge (BD2K) initiative.
Title:  Database resources of the National Center for Biotechnology Information.
Title:  Europe PMC: a full-text literature database for the life sciences and platform for innovation.
Title:  Bio-ontologies-fast and furious.
Title:  BioPortal: ontologies and integrated data resources at the click of a mouse.
Title:  PubMed related articles: a probabilistic topic-based model for content similarity.
Title:  High-Impact Articles-Citations, Downloads, and Altmetric Score.
Yuci
sumber