【发布时间】:2013-07-29 07:19:10
【问题描述】:
我在xml下面处理:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE CASE SYSTEM "C:\Users\user123\Desktop\demo.dtd">
<INFO>
<NAME>John Smith</NAME>
<BUSINESSNAME>Smith</BUSINESSNAME>
</INFO>
但我不得不忽略
<!DOCTYPE CASE SYSTEM "C:\Users\user123\Desktop\demo.dtd"> because in presence of this parsing is giving error.
这是我的代码:
StringBuilder sb = new StringBuilder();
File xmlFile = new File("C:/Users/Desktop/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");
有什么建议吗?
【问题讨论】:
-
removing that line from the file instead of ignoring it的想法怎么样。 -
“解析出错”什么错误?还是 stackTrace?
-
@Prabhaker:xml 文件是动态创建的,我只需要解析 xml 即可保持内容完整。
-
@rahulserver : Error : java.io.FileNotFoundException: C:\Users\user123\Desktop\demo.dtd(系统找不到指定的路径)
标签: java xml-parsing doctype