簡體   English   中英

我如何將soap api響應發送到數據庫中的某些字段

[英]How can i send that soap api response some fields into db

如何使用java解析數據字段並將其發送到db。 我需要將數據存儲到數據庫的代碼。 它需要任何額外的依賴項。

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
      <WS_FulfillmentResponse xmlns="https://imfawstest.codemantra.com/AIDC/">
         <WS_FulfillmentResult>
            <Date_Generated>12/2/2019 2:24:03 AM</Date_Generated>
            <product>
               <PUB_ID>25905</PUB_ID>
               <LOG_NO>46725</LOG_NO>
               <PIN_NO>94389</PIN_NO>
               <SERIES_CODE>001</SERIES_CODE>
               <SERIES_DESC>IMF Working Papers</SERIES_DESC>
               <TITLE><![CDATA[cM_Safe and Wholesome Food - Nordic Reflections]]></TITLE>
               <SUBTITLE />
               <PUBL_SERIES_VOLNO>Working Paper No. 12/596</PUBL_SERIES_VOLNO>
               <LANGUAGE_ID>4</LANGUAGE_ID>
               <EDITION />
               <PRC_STATUS_ID>11</PRC_STATUS_ID>
               <PRC_STATUS_CODE>40</PRC_STATUS_CODE>
               <Process_Status_Desc>Key' metadata required for promotion is entered by now (Project ID &amp; description, Stock No.)</Process_Status_Desc>
               <PUBLISHED_DATE />
               <REVISION_DATE />
               <EST_COMPL_DATE />
               <ISBN>9781498302258</ISBN>
               <ISSN_ID>152</ISSN_ID>
               <COPYRIGHT_YR>2019</COPYRIGHT_YR>
               <DOI>10.5089/9781498302258.001</DOI>
               <Persistent_Link>https://elibrary.imf.org/view/IMF001/25905-9781498302258/25905-9781498302258/25905-9781498302258.xml</Persistent_Link>
               <SKU>802258</SKU>
               <DRAFT>0</DRAFT>
               <FRONT_MATTERS>0</FRONT_MATTERS>
               <MAIN>0</MAIN>
               <Size>Small</Size>
               <TOTAL>0</TOTAL>
               <ROMAN_ARABIC />
               <Dept_Phone>37779</Dept_Phone>
               <Dept_Email>JLI2</Dept_Email>
               <Dept_Contact_ID>22382</Dept_Contact_ID>
               <Dept_Contact_Name />
               <EXR_Editor_Name>Jim Beardow</EXR_Editor_Name>
               <EXR_Editor_ID>45</EXR_Editor_ID>
               <EXR_Editor_Phone>37899</EXR_Editor_Phone>
               <EXR_Editor_Email>jbeardow@imf.org</EXR_Editor_Email>
               <OutsidePublisher_Id>0</OutsidePublisher_Id>
               <OutsidePublisher_Name />
               <OutsidePublisher_Email />
               <OutsidePublisher_Phone />
               <OutsidePublisher_Address />
               <PUBL_MANUS_EXPT_DATE>10/31/2019</PUBL_MANUS_EXPT_DATE>
               <PUBL_DATE_TO_GRAPHICS />
               <PUBL_DATE_TRANSLATION_RECD />
               <PUBL_DATE_SENT_TRANSLATION>10/31/2019</PUBL_DATE_SENT_TRANSLATION>
               <PUBL_MANUS_RCVD_DATE>10/31/2019</PUBL_MANUS_RCVD_DATE>
               <PUBL_ASG_EDITOR_DATE>10/31/2019</PUBL_ASG_EDITOR_DATE>
               <FIRST_RECIEPT_DATE>10/31/2019</FIRST_RECIEPT_DATE>
               <PUBL_OUT_OF_PRINT_DATE />
               <PRIORITY>Medium</PRIORITY>
               <PUBL_DEPT_SUMMARY />
               <PUBL_NOTE_CORESP />
               <PUBL_INTERNAL_REMARKS />

上面是示例格式如何解析和獲取一些字段名稱和 isbn,更多的價格如何發送到 db。

您可以使用用於 XML 處理的內置Java API(稱為 DOM XML Parser)來提取每個數據。 它將 XML 文件變成 DOM 或 Tree 結構,你必須一個節點一個節點地遍歷才能得到你想要的。 這是一個示例,展示了如何做到這一點,

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

try {
     // Creating a constructor of file class and parsing an XML file
     File file = new File("XMLFile.xml");
     // An instance of factory that gives a document builder
     DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
     // An instance of builder to parse the specified XML file
     DocumentBuilder db = dbf.newDocumentBuilder();
     Document doc = db.parse(file);
     doc.getDocumentElement().normalize();
     System.out.println("Root element: " + doc.getDocumentElement().getNodeName());
     NodeList nodeList = doc.getElementsByTagName("product");

     // NodeList is not iterable, so we are using for loop
     for (int i = 0; i < nodeList.getLength(); i++) {
         Node node = nodeList.item(i);
         System.out.println("\nNode Name :" + node.getNodeName());
         if (node.getNodeType() == Node.ELEMENT_NODE) {
             Element eElement = (Element) node;
             System.out.println("PUB ID: " + eElement.getElementsByTagName("PUB_ID").item(0).getTextContent());
             System.out.println("LOG NO: " + eElement.getElementsByTagName("LOG_NO").item(0).getTextContent());
             System.out.println("PIN NO: " + eElement.getElementsByTagName("PIN_NO").item(0).getTextContent());
             System.out.println("SERIES CODE: " + eElement.getElementsByTagName("SERIES_CODE").item(0).getTextContent());
             System.out.println("SERIES DESC: " + eElement.getElementsByTagName("SERIES_DESC").item(0).getTextContent());
         }
     }
 } catch (SAXException | IOException | ParserConfigurationException ex) {
     Logger.getLogger(YourClass.class.getName()).log(Level.SEVERE, null, ex);
 }

然后您可以編寫一個插入查詢來將數據發送到您的數據庫。

希望這對你有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM