import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public void BuildXML() {
// 创建根节点
Element root = new Element("errors");
Document Doc = new Document(root);
for (FileError fileError : errors) {
Element elements = new Element("file");
elements.setAttribute("name", fileError.getFileName());
// 循环第二层节点
for (String errorInfo : fileError.getErrors()) {
elements.addContent(new Element("error").setText(errorInfo));
}
root.addContent(elements);
}
Format format = Format.getCompactFormat();
format.setEncoding("GB2312");
format.setIndent(" ");
XMLOutputter XMLOut = new XMLOutputter(format);
try {
XMLOut.output(Doc, new FileOutputStream("D:\\logger.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 实体
public class FileError {
private String fileName;
private List<String> errors;
public FileError(String fileName, List<String> errors) {
this.fileName = fileName;
this.errors = errors;
}
public List<String> getErrors() {
return errors;
}
public void setErrors(List<String> errors) {
this.errors = errors;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
// 生成的xml
<?xml version="1.0" encoding="GB2312"?>
<errors>
<file name="test1.java">
<error>line 176 应该是调试信息,不应该打印为Error信息</error>
</file>
<file name="test2.java">
<error>line 489 应该是调试信息,不应该打印为Error信息</error>
<error>line 521 应该是调试信息,不应该打印为Error信息</error>
</file>
</errors>