Java transformer.transform不';不能使用URL吗?

Java transformer.transform不';不能使用URL吗?,java,xml,servlets,Java,Xml,Servlets,因此,我尝试运行一个web应用程序,该应用程序从HTML表单获取用户输入,并使用Javaservlet将其附加到服务器上的XML文档中 if(urlc.getResponseCode() == 200) { urlc = (HttpURLConnection) url.openConnection(); urlc.setDoOutput(true); urlc.setUseCaches(false);

因此,我尝试运行一个web应用程序,该应用程序从HTML表单获取用户输入,并使用Javaservlet将其附加到服务器上的XML文档中

if(urlc.getResponseCode() == 200) {
              urlc = (HttpURLConnection) url.openConnection();
              urlc.setDoOutput(true);
              urlc.setUseCaches(false);
              urlc.setRequestMethod("POST");
              urlc.setRequestProperty("Content-Type", "application / xml");

              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              transformerFactory.setAttribute("indent-number", 2);
              Transformer transformer = transformerFactory.newTransformer();
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(urlc.getOutputStream());
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"");
              transformer.setOutputProperty(OutputKeys.METHOD, "xml");                
              transformer.transform(source, result);
          }
      }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
      response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");
}
下面是如何获取XML文件并对其进行修改的

@Override
public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
{
     try {
          String urlpath = "http://192.168.11.9:8080/Chat-sort-of/Messages.xml";
          DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
          DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
          URL url = new URL(urlpath);
          HttpURLConnection urlc = (HttpURLConnection) url.openConnection();

          urlc.setDoInput(true);
          urlc.setDoOutput(true);
          urlc.setUseCaches(false);
          urlc.setRequestMethod("GET");
          urlc.setRequestProperty("Content-Type", "application / xml");

          Document doc = docBuilder.parse(urlc.getInputStream());
          Node m = doc.getElementsByTagName("messages").item(0);
          Element messageNode = doc.createElement("message");
          testMessage = request.getParameter("message-box");
          if(testMessage == null) {response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");}
          messageNode.appendChild(doc.createTextNode(testMessage));
          m.appendChild(messageNode);
if(urlc.getResponseCode() == 200) {
              urlc = (HttpURLConnection) url.openConnection();
              urlc.setDoOutput(true);
              urlc.setUseCaches(false);
              urlc.setRequestMethod("POST");
              urlc.setRequestProperty("Content-Type", "application / xml");

              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              transformerFactory.setAttribute("indent-number", 2);
              Transformer transformer = transformerFactory.newTransformer();
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(urlc.getOutputStream());
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"");
              transformer.setOutputProperty(OutputKeys.METHOD, "xml");                
              transformer.transform(source, result);
          }
      }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
      response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");
}
以下是我如何写入XML文件:

if(urlc.getResponseCode() == 200) {
              urlc = (HttpURLConnection) url.openConnection();
              urlc.setDoOutput(true);
              urlc.setUseCaches(false);
              urlc.setRequestMethod("POST");
              urlc.setRequestProperty("Content-Type", "application / xml");

              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              transformerFactory.setAttribute("indent-number", 2);
              Transformer transformer = transformerFactory.newTransformer();
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(urlc.getOutputStream());
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"");
              transformer.setOutputProperty(OutputKeys.METHOD, "xml");                
              transformer.transform(source, result);
          }
      }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
      response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");
}
编译期间没有错误

if(urlc.getResponseCode() == 200) {
              urlc = (HttpURLConnection) url.openConnection();
              urlc.setDoOutput(true);
              urlc.setUseCaches(false);
              urlc.setRequestMethod("POST");
              urlc.setRequestProperty("Content-Type", "application / xml");

              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              transformerFactory.setAttribute("indent-number", 2);
              Transformer transformer = transformerFactory.newTransformer();
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(urlc.getOutputStream());
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"");
              transformer.setOutputProperty(OutputKeys.METHOD, "xml");                
              transformer.transform(source, result);
          }
      }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
      response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");
}
如果我在transformer.transform函数中将变量“result”替换为System.out,程序将正确打印XML文件并进行修改,这意味着源文件不是空的

if(urlc.getResponseCode() == 200) {
              urlc = (HttpURLConnection) url.openConnection();
              urlc.setDoOutput(true);
              urlc.setUseCaches(false);
              urlc.setRequestMethod("POST");
              urlc.setRequestProperty("Content-Type", "application / xml");

              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              transformerFactory.setAttribute("indent-number", 2);
              Transformer transformer = transformerFactory.newTransformer();
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(urlc.getOutputStream());
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"");
              transformer.setOutputProperty(OutputKeys.METHOD, "xml");                
              transformer.transform(source, result);
          }
      }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
      response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");
}
我知道这不是最好的方法,但我现在不会做任何其他的方法

if(urlc.getResponseCode() == 200) {
              urlc = (HttpURLConnection) url.openConnection();
              urlc.setDoOutput(true);
              urlc.setUseCaches(false);
              urlc.setRequestMethod("POST");
              urlc.setRequestProperty("Content-Type", "application / xml");

              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              transformerFactory.setAttribute("indent-number", 2);
              Transformer transformer = transformerFactory.newTransformer();
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(urlc.getOutputStream());
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"");
              transformer.setOutputProperty(OutputKeys.METHOD, "xml");                
              transformer.transform(source, result);
          }
      }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
      response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");
}

有什么想法吗?

请澄清您的问题,您看到了什么以及您希望看到什么。我希望XML文件会发生变化。我看不到任何变化。
if(urlc.getResponseCode() == 200) {
              urlc = (HttpURLConnection) url.openConnection();
              urlc.setDoOutput(true);
              urlc.setUseCaches(false);
              urlc.setRequestMethod("POST");
              urlc.setRequestProperty("Content-Type", "application / xml");

              TransformerFactory transformerFactory = TransformerFactory.newInstance();
              transformerFactory.setAttribute("indent-number", 2);
              Transformer transformer = transformerFactory.newTransformer();
              DOMSource source = new DOMSource(doc);
              StreamResult result = new StreamResult(urlc.getOutputStream());
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"");
              transformer.setOutputProperty(OutputKeys.METHOD, "xml");                
              transformer.transform(source, result);
          }
      }catch (ParserConfigurationException pce) {
            pce.printStackTrace();
       } catch (TransformerException tfe) {
        tfe.printStackTrace();
       } catch (IOException ioe) {
        ioe.printStackTrace();
       } catch (SAXException sae) {
        sae.printStackTrace();
       }
      response.sendRedirect("http://192.168.11.9:8080/Chat-sort-of/index.html");
}