xml读取和生成

前端之家收集整理的这篇文章主要介绍了xml读取和生成前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
大数据导出xml格式
思路:
先创建一个空白的xml文件 再用分页查询批次性导入xml 没问题的
对了 在每批导入后 将对象回收
你先写分批查询+导入嘛   注意在每个批次导入后清空对象内存就可以了

import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/**
*新建一个myXML文件在目录下:内容如下
*<hibernate-mapping>
* <class name="com.aptech.User" table="t_user">
*  <property name="username"></property>
*  <property name="password"></property>
* </class>
*</hibernate-mapping>
*
*/

public class Dom4j {

public static void main(String[] args)throws Exception {
  System.out.println("=========readerXML=========");
  readerXML();
  System.out.println("\n\n\n=========readerXMLNodes=========");
  readXMLNodes();
  System.err.println("\n\n===========readerXMLChild==========");
  readerXMLChild();
  System.err.println("\n\n============= making end ......====================");
  makeXML();
 }

/**
  * 得到子节点3种办法1.如下 2.迭代器(iterate)
  * @throws Exception
  */
 public  static void readerXML() throws Exception{
  //实例化SAXReader DOM4J核心对象
  SAXReader reader=new SAXReader();
  //得到document解析文件
  Document document=reader.read(new File("myxml.xml"));
  //得到文件节点名称
  Element element=document.getRootElement();
  //输出文件节点名称
  System.out.println(element.getName()); 
 }
 
 public static void readXMLNodes() throws Exception{
  SAXReader reader =new SAXReader();
  Document document = reader.read(new File("myxml.xml"));
  Element element=document.getRootElement();
  
  for (Iterator i= element.elementIterator();i.hasNext();) {
   Element nextElement=(Element)i.next();
   System.out.println(nextElement.getName());
   
   for (Iterator j = nextElement.attributeIterator();j.hasNext();) {
    Attribute attribute=(Attribute)j.next();
    System.out.println((attribute.getName()+"----"+attribute.getValue()));
   }
  }
 }
 
 /**
  * 从指定的节点读取属性及值
  * @throws Exception
  */
 public static void readerXMLChild() throws Exception{
  SAXReader reader =new SAXReader();
  Document document=reader.read(new File("myxml.xml"));
  List<Node> list = document.selectNodes("//hibernate-mapping/class/property");//找到指定节点
  for (Node n:list) {
   System.out.print(n.getName()+"===>");
   System.out.println(n.valueOf("@name"));
  }
 
 }

 /**
  * 制作XML文件
  * @throws Exception
  */
 public static void makeXML()throws Exception{
  //得到document对象
  Document document =DocumentHelper.createDocument();
  //添加根节点
  Element root=document.addElement("hibernate-mapping");
  //添加节点class,属性名为name与table 分别赋值
  Element classElement=root.addElement("class")
  .addAttribute("name","com.aptech.User").
  addAttribute("table","t_user");//addText 节点里的文本
  //添加property子节点,添加属性name 值为"username"
  classElement.addElement("property").addAttribute("name","username");
  //格式化输出文件
  OutputFormat format=OutputFormat.createPrettyPrint();
  //声明写出文件
  XMLWriter writer=new XMLWriter(new FileWriter("User2.xml"),format);
  //写出文件
  writer.write(document);
  //关闭文件流
  writer.close();
  
 }
 
}

猜你在找的XML相关文章