使用 DocumentBuilderFactory 对象,生成xml文件

98 阅读1分钟
public static void main(String[] args) {
  //生成一个xml文件
  //① 创建DocumentBuilderFactory类的对象
  DocumentBuilderFactory factoryNew = DocumentBuilderFactory.newInstance();
  //②创建DocumentBuilder
  DocumentBuilder builderNew = null;
  try {
    builderNew = factoryNew.newDocumentBuilder();
  } catch (ParserConfigurationException e) {
    throw new RuntimeException(e);
  }
  //③创建Document
  Document documentNew = builderNew.newDocument();
  //xml文件里的结构
  //①创建第一层节点
  Element ufinterfaceNew = documentNew.createElement("ufinterface");
  ufinterfaceNew.setAttribute("account", "develop");//给 根节点设置属性
  //account="develop" billtype="vouchergl" businessunitcode="develop" filename="" groupcode="0001" isexchange="" orgcode="XH003" receiver="0001A1100000000003ZC" replace="" roottag="0001A1100000000003ZC" sender="0001"
  //②创建第二层节点,并设置属性
  Element voucherNew = documentNew.createElement("voucher");
  voucherNew.setAttribute("id", "0123456789");
  //③在创建第三层的节点
  Element voucherHeadNew = documentNew.createElement("voucher_head");
  //④创建第四层的节点
  Element pkVoucherNew = documentNew.createElement("pk_voucher");
  pkVoucherNew.setTextContent("1001ZZ100000005YMSFH");
  //逐层添加节点
  voucherHeadNew.appendChild(pkVoucherNew);//把第四层的节点加到第三层
  voucherNew.appendChild(voucherHeadNew);//把第三层的节点加到第二层
  ufinterfaceNew.appendChild(voucherNew);//把第二层的节点加到第一层
  documentNew.appendChild(ufinterfaceNew);// 最后将根节点添加到Document对象里下

  //开始生成 xml
  // 创建TransformerFactory对象
  TransformerFactory tffNew = TransformerFactory.newInstance();
  // 创建Transformer对象
  Transformer tfNew = null;
  try {
    tfNew = tffNew.newTransformer();
  } catch (TransformerConfigurationException e) {
    throw new RuntimeException(e);
  }
  //xml 文件名
  SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss");
  String dest = "F:\Cs" + sdf2.format(new Date()) + ".xml";

  // 使用Transformer的transform()方法将DOM树转换成XML
  try {
    tfNew.transform(new DOMSource(documentNew), new StreamResult(dest));
  } catch (TransformerException e) {
    throw new RuntimeException(e);
  }

  System.out.println("ok");

}