2016-07-26 4 views
0

양식에서 XML 파일로 가져온 일부 데이터를 작성하려고합니다. 새 파일을 작성하고 데이터를 쓰고 싶을 때마다이 파일을 저장하려고합니다. 특정 폴더 이것은 내가 시도한 것입니다. 나는 HttpRequest를 통해 수신하고 어떤 추가하고 싶습니다 여기서블릿에서 XML 파일에 쓰기

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{ 
    String hostIPAddress=request.getParameter("hostIPAddress"); 
    String destinationIPAddressTool1=request.getParameter("IPtool1"); 
    String destinationIPAddressTool2=request.getParameter("IPtool2"); 
    String root="root"; 
    String hostIPElement="Host-IP"; 
    String tool1Element="Tool-1"; 
    String tool2Element="Tool-2"; 
    if(destinationIPAddressTool1 == null) 
    { 
     destinationIPAddressTool1="none"; 
    } 

    if(destinationIPAddressTool2 == null) 
    { 
     destinationIPAddressTool2="none"; 
    } 

    DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance(); 
    DocumentBuilder documentBuilder = null; 
    try { 
     documentBuilder = documentBuilderFactory.newDocumentBuilder(); 
    } catch (ParserConfigurationException e) { 

     e.printStackTrace(); 
    } 
    Document document = documentBuilder.newDocument(); 
    Element rootElement = document.createElement(root); 
    document.appendChild(rootElement); 

    Element em1 = document.createElement(hostIPElement); 
    em1.appendChild(document.createTextNode(hostIPAddress)); 
    rootElement.appendChild(em1); 

    Element em2 = document.createElement(tool1Element); 
    em2.appendChild(document.createTextNode(destinationIPAddressTool1)); 
    rootElement.appendChild(em2); 

    Element em3 = document.createElement(tool2Element); 
    em3.appendChild(document.createTextNode(destinationIPAddressTool2)); 
    rootElement.appendChild(em3); 

    TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
    Transformer transformer = null; 
    try { 
     transformer = transformerFactory.newTransformer(); 
    } catch (TransformerConfigurationException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    DOMSource source = new DOMSource(document); 
    StreamResult result = new StreamResult(System.out); 
    try { 
     transformer.transform(source, result); 
    } catch (TransformerException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 


} 
+5

OK XML 파일에 내용을 쓰기 작업을해야 결국이 시도 성공. 그것은 당신의 요구 사항입니다. 귀하의 질문은 무엇인가? 왜 XML을 파일로 보내고 표준 출력으로 보내지 않기 때문에, 파일 출력 스트림이 아닌 System.out에 쓰고 있습니까? –

답변

1

그것이

//이

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
      Transformer transformer = transformerFactory.newTransformer(); 
      DOMSource source = new DOMSource(doc); 
      StreamResult result = new StreamResult(new File("file.xml")); 

      // Output to console for testing 
      // StreamResult result = new StreamResult(System.out); 

      transformer.transform(source, result);