java读写xml文件

import java.io.File;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;

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

public class ReadXml {

 /**
  * 
  * @param xmlFile
  *            File
  * @return boolean
  * @throws DocumentException 
  * @throws Exception 
  */
 private boolean parse(File xmlFile) throws Exception {
 
  try{

   LinkedHashMap<Integer, String> values = null;
   SAXReader reader = new SAXReader();
   Document document = reader.read(xmlFile);
   Element root = document.getRootElement();
   Element common = root.element("COMMON");
   
   Element content = root.element("CONTENT");
   List list = content.elements();
   int size = list.size();


   for (int i = 0; i < list.size(); i++) {
    Element item = (Element) list.get(i);
    values = new LinkedHashMap<Integer, String>();
    for (Iterator iter1 = item.elementIterator(); iter1
    .hasNext();) {
     Element item1 = (Element) iter1.next();
     values.put(values.size(), item1.getText());
    }
 
   }
    
  } catch(Exception ex) {
    
   throw ex;
  } 
  return true;

 }
 
  /**
     * 生成xml
     */
 public void writeXml() {
   
  try {
   File parent = new File("c:/xml");
   if(!parent.isDirectory()) {
    parent.mkdir();
   }
   SimpleDateFormat filesd = new SimpleDateFormat("yyyyMMdd-HHmmss");
   String now = filesd.format(new Date());
   String sourcename = "xmlname-" + now;
   String filename = sourcename + ".xml";
   File file = new File(parent, filename);

   

   //获取要同步的数据
   List<String> list = new ArrayList<String> ();

   list.add("text1");
   list.add("text2");
   Document document = DocumentHelper.createDocument();

   Element root = document.addElement("root");
   Element content = root.addElement("CONTENT");


   for (String str : list) {

    Element salesInfo = content
      .addElement("item");
    salesInfo.addElement("INT_DOM_FLAG").addText(str);
    
   }
   

   OutputFormat format = OutputFormat.createPrettyPrint();
   // format.setEncoding("GBK");
   XMLWriter writer = new XMLWriter(new FileWriter(file), format);

   writer.write(document);
   writer.close();
   
  } catch (Exception ex) {
   ex.printStackTrace();
  }
  

 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaXML文件有多种方式,其中比较常用的是DOM和SAX两种方式。 DOM方式: 1. 加载XML文件 ```java DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse(new File("xmlfile.xml")); ``` 2. 获取根节点 ```java Element root = document.getDocumentElement(); ``` 3. 获取子节点 ```java NodeList nodeList = root.getChildNodes(); ``` 4. 遍历节点 ```java for (int i=0; i<nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; // 获取节点内容 String content = element.getTextContent(); // 获取节点属性 String attribute = element.getAttribute("attributeName"); } } ``` SAX方式: 1. 创建SAX解析器 ```java SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser saxParser = factory.newSAXParser(); ``` 2. 实现处理器类 ```java class MyHandler extends DefaultHandler { @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { // 处理开始标签 } @Override public void endElement(String uri, String localName, String qName) throws SAXException { // 处理结束标签 } @Override public void characters(char[] ch, int start, int length) throws SAXException { // 处理节点内容 } } ``` 3. 解析XML文件 ```java saxParser.parse(new File("xmlfile.xml"), new MyHandler()); ``` 以上是JavaXML文件的基本方法,具体使用可以根据需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值