Java transformer.transform不';不能使用URL吗?
因此,我尝试运行一个web应用程序,该应用程序从HTML表单获取用户输入,并使用Javaservlet将其附加到服务器上的XML文档中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);
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");
}