0
我的要求是處理xml文件來搜索字符並將其替換。 我使用下面的代碼是:處理xml文件時出錯
public static void main(String[] args) {
try
{
StringBuilder sb = new StringBuilder();
File xmlFile = new File("C:/Users/demo.xml");
BufferedReader br = new BufferedReader(new FileReader(xmlFile));
String line = null;
while((line = br.readLine())!= null){
if(line.indexOf("&") != -1)
{
line = line.replaceAll("&","&");
}
sb.append(line);
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter(xmlFile));
Source xmlInput = new StreamSource(new StringReader(sb.toString()));
StringWriter stringWriter = new StringWriter();
StreamResult xmlOutput = new StreamResult(stringWriter);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setAttribute("indent-number", 2);
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(xmlInput, xmlOutput);
bw.write(xmlOutput.getWriter().toString());
bw.close();
System.out.println("success");
}
catch (Exception e) {
System.out.println("Error : " + e.getMessage());
}
當我的XML文件是:
<INFO>
<NAME>Joseph</NAME>
<BUSINESSNAME>M & A</BUSINESSNAME>
<INFO>
它給適當的輸出 但具有下列格式(實際的XML)
<!DOCTYPE CASE SYSTEM "C:\Program Files\abc.dtd">
<INFO>
<NAME>Joseph</NAME>
<BUSINESSNAME>M & A</BUSINESSNAME>
<INFO>
我收到錯誤:錯誤:java.io.FileNotFoundException:C:\ Program Files \ abc.dtd(系統找不到指定的路徑)。
任何解決方案?
將文件添加到路徑或相應地更改它? – Lenymm
明白了,doctype路徑和源文件路徑必須相同...謝謝 – Aquarius24