javascript soap xml到JS变量

jjjwad0x  于 2023-05-12  发布在  Java
关注(0)|答案(1)|浏览(132)

使用postman,我从wsdl url中获得响应,我获得soap响应,所有这些都很好,现在我需要在网站上使用数据,以便我可以将用户输入的数据与我获得的响应进行比较,我设法使用php-curl在网页上获得响应

  1. <?php
  2. $curl = curl_init();
  3. curl_setopt_array($curl, array(
  4. CURLOPT_URL => "https://www.dataaccess.com/webservicesserver/numberconversion.wso?WSDL=",
  5. CURLOPT_RETURNTRANSFER => true,
  6. CURLOPT_CUSTOMREQUEST => "POST",
  7. CURLOPT_POSTFIELDS => "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"
  8. xmlns:web=\"http://www.dataaccess.com/webservicesserver/\">\n
  9. <soapenv:Header/>\n
  10. <soapenv:Body>\n
  11. <web:NumberToWords>\n
  12. <ubiNum>100</ubiNum>\n
  13. </web:NumberToWords>\n
  14. </soapenv:Body>\n
  15. </soapenv:Envelope>",
  16. CURLOPT_HTTPHEADER => array("content-type: text/xml"),
  17. ));
  18. $response = curl_exec($curl);
  19. $err = curl_error($curl);
  20. curl_close($curl);
  21. if ($err) {
  22. echo "cURL Error #:" . $err;
  23. } else {
  24. echo $response;
  25. }
  26. ?>

输出

  1. <soap-env:envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  2. <soap-env:header>
  3. <soap-env:body>
  4. <n0:zfi_mf_ws_consulta_clienteresponse xmlns:n0="urn:sap-com:document:sap:rfc:functions">
  5. <e_datos>
  6. <kunnrdf>123</kunnr>
  7. <name1>name</name1>
  8. <land1>VE</land1>
  9. <stras>street</stras>
  10. <ort01>SAN FRANCISCO</ort01>
  11. <telf1>0261-215012</telf1>
  12. <stcd1>J-0701721725-7</stcd1>
  13. <stcd1_sg>J07017252252177</stcd1_sg>
  14. <smtp_addr>test@hotmail.com</smtp_addr>
  15. <tatyp_1>Flete</tatyp_1>
  16. <taxkd_1>0</taxkd_1>
  17. <tatyp_2> Producto</tatyp_2>
  18. <taxkd_2>1</taxkd_2>
  19. </e_datos>
  20. <e_respuesta>
  21. <tipo>
  22. <clase>
  23. <nro>000</nro>
  24. <mensaje></mensaje>
  25. </clase>
  26. </tipo>
  27. </e_respuesta>
  28. </n0:zfi_mf_ws_consulta_clienteresponse></soap-env:body>
  29. </soap-env:header>
  30. </soap-env:envelope>

如何只获取值,然后用它与另一个数据进行比较,看看它是否匹配,另外我需要所有其他的用于另一种用途(用js输入字段)
谢谢

tp5buhyn

tp5buhyn1#

您可以将字符串解析为XML,然后通过TagName进行搜索,这里有一个示例,我在其中获得了Movie-objects的列表。

  1. var doc;
  2. var parser = new DOMParser();
  3. doc = parser.parseFromString(responseXML.data, 'text/xml');
  4. var x = doc.getElementsByTagName("d4p1:Movie");
  5. var movies = [];
  6. for (var i= 0;i < x.length; i++)
  7. {
  8. movies.push({
  9. id: x[i].getElementsByTagName("d4p1:Id")[0].childNodes[0].nodeValue
  10. title: x[i].getElementsByTagName("d4p1:Title")[0].childNodes[0].nodeValue,
  11. overview: x[i].getElementsByTagName("d4p1:Overview")[0].childNodes[0].nodeValue,
  12. src: x[i].getElementsByTagName("d4p1:Poster")[0].childNodes[0].nodeValue
  13. });

相关问题