当前位置: 首页 > 工具软件 > JDOM > 使用案例 >

jdom写xml

马承
2023-12-01

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> 

 类似资料: