XML数据生成和解析

前端之家收集整理的这篇文章主要介绍了XML数据生成和解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
public interface XmlDocument { 
/** 
* 建立XML文档 
* @param fileName 文件全路径名称 
*/ 
public void createXml(String fileName); 
/** 
* 解析XML文档 
* @param fileName 文件全路径名称 
*/ 
public void parserXml(String fileName); 
} 

DOM生成和解析XML文档
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.PrintWriter; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.ParserConfigurationException; 
import javax.xml.transform.OutputKeys; 
import javax.xml.transform.Transformer; 
import javax.xml.transform.TransformerConfigurationException; 
import javax.xml.transform.TransformerException; 
import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.Node; 
import org.w3c.dom.NodeList; 
import org.xml.sax.SAXException; 
/** 
* 
* @author hongliang.dinghl 
* DOM生成与解析XML文档 
*/ 
public class DomDemo implements XmlDocument { 
private Document document; 
private String fileName; 
public void init() { 
try { 
DocumentBuilderFactory factory = DocumentBuilderFactory 
.newInstance(); 
DocumentBuilder builder = factory.newDocumentBuilder(); 
this.document = builder.newDocument(); 
} catch (ParserConfigurationException e) { 
System.out.println(e.getMessage()); 
} 
} 
public void createXml(String fileName) { 
Element root = this.document.createElement("employees"); 
this.document.appendChild(root); 
Element employee = this.document.createElement("employee"); 
Element name = this.document.createElement("name"); 
name.appendChild(this.document.createTextNode("丁宏亮")); 
employee.appendChild(name); 
Element sex = this.document.createElement("sex"); 
sex.appendChild(this.document.createTextNode("m")); 
employee.appendChild(sex); 
Element age = this.document.createElement("age"); 
age.appendChild(this.document.createTextNode("30")); 
employee.appendChild(age); 
root.appendChild(employee); 
TransformerFactory tf = TransformerFactory.newInstance(); 
try { 
Transformer transformer = tf.newTransformer(); 
DOMSource source = new DOMSource(document); 
transformer.setOutputProperty(OutputKeys.ENCODING,"gb2312"); 
transformer.setOutputProperty(OutputKeys.INDENT,"yes"); 
PrintWriter pw = new PrintWriter(new FileOutputStream(fileName)); 
StreamResult result = new StreamResult(pw); 
transformer.transform(source,result); 
System.out.println("生成XML文件成功!"); 
} catch (TransformerConfigurationException e) { 
System.out.println(e.getMessage()); 
} catch (IllegalArgumentException e) { 
System.out.println(e.getMessage()); 
} catch (FileNotFoundException e) { 
System.out.println(e.getMessage()); 
} catch (TransformerException e) { 
System.out.println(e.getMessage()); 
} 
} 
public void parserXml(String fileName) { 
try { 
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
Document document = db.parse(fileName); 
NodeList employees = document.getChildNodes(); 
for (int i = 0; i < employees.getLength(); i++) { 
Node employee = employees.item(i); 
NodeList employeeInfo = employee.getChildNodes(); 
for (int j = 0; j < employeeInfo.getLength(); j++) { 
Node node = employeeInfo.item(j); 
NodeList employeeMeta = node.getChildNodes(); 
for (int k = 0; k < employeeMeta.getLength(); k++) { 
System.out.println(employeeMeta.item(k).getNodeName() 
+ ":" + employeeMeta.item(k).getTextContent()); 
} 
} 
} 
System.out.println("解析完毕"); 
} catch (FileNotFoundException e) { 
System.out.println(e.getMessage()); 
} catch (ParserConfigurationException e) { 
System.out.println(e.getMessage()); 
} catch (SAXException e) { 
System.out.println(e.getMessage()); 
} catch (IOException e) { 
System.out.println(e.getMessage()); 
} 
} 
} 

SAX生成和解析XML文档
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStream; 

import javax.xml.parsers.ParserConfigurationException; 
import javax.xml.parsers.SAXParser; 
import javax.xml.parsers.SAXParserFactory; 

import org.xml.sax.Attributes; 
import org.xml.sax.SAXException; 
import org.xml.sax.helpers.DefaultHandler; 
/** 
* 
* @author hongliang.dinghl 
* SAX文档解析 
*/ 
public class SaxDemo implements XmlDocument { 

public void createXml(String fileName) { 
System.out.println("<<"+filename+">>"); 
} 

public void parserXml(String fileName) { 
SAXParserFactory saxfac = SAXParserFactory.newInstance(); 

try { 

SAXParser saxparser = saxfac.newSAXParser(); 

InputStream is = new FileInputStream(fileName); 

saxparser.parse(is,new MySAXHandler()); 

} catch (ParserConfigurationException e) { 

e.printStackTrace(); 

} catch (SAXException e) { 

e.printStackTrace(); 

} catch (FileNotFoundException e) { 

e.printStackTrace(); 

} catch (IOException e) { 

e.printStackTrace(); 

} 

} 

} 

class MySAXHandler extends DefaultHandler { 

boolean hasAttribute = false; 

Attributes attributes = null; 

public void startDocument() throws SAXException { 

System.out.println("文档开始打印了"); 

} 

public void endDocument() throws SAXException { 

System.out.println("文档打印结束了"); 

} 

public void startElement(String uri,String localName,String qName,Attributes attributes) throws SAXException { 

if (qName.equals("employees")) { 

return; 

} 

if (qName.equals("employee")) { 

System.out.println(qName); 

} 

if (attributes.getLength() > 0) { 

this.attributes = attributes; 

this.hasAttribute = true; 

} 

} 

public void endElement(String uri,String qName) 

throws SAXException { 

if (hasAttribute && (attributes != null)) { 

for (int i = 0; i < attributes.getLength(); i++) { 

System.out.println(attributes.getQName(0) 
+ attributes.getValue(0)); 

} 

} 

} 

public void characters(char[] ch,int start,int length) 

throws SAXException { 

System.out.println(new String(ch,start,length)); 

} 

} 
package com.alisoft.facepay.framework.bean; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStream; 
import javax.xml.parsers.ParserConfigurationException; 
import javax.xml.parsers.SAXParser; 
import javax.xml.parsers.SAXParserFactory; 
import org.xml.sax.Attributes; 
import org.xml.sax.SAXException; 
import org.xml.sax.helpers.DefaultHandler; 
/** 
* 
* @author hongliang.dinghl 
* SAX文档解析 
*/ 
public class SaxDemo implements XmlDocument { 
public void createXml(String fileName) { 
System.out.println("<<"+filename+">>"); 
} 
public void parserXml(String fileName) { 
SAXParserFactory saxfac = SAXParserFactory.newInstance(); 
try { 
SAXParser saxparser = saxfac.newSAXParser(); 
InputStream is = new FileInputStream(fileName); 
saxparser.parse(is,new MySAXHandler()); 
} catch (ParserConfigurationException e) { 
e.printStackTrace(); 
} catch (SAXException e) { 
e.printStackTrace(); 
} catch (FileNotFoundException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 
} 
class MySAXHandler extends DefaultHandler { 
boolean hasAttribute = false; 
Attributes attributes = null; 
public void startDocument() throws SAXException { 
System.out.println("文档开始打印了"); 
} 
public void endDocument() throws SAXException { 
System.out.println("文档打印结束了"); 
} 
public void startElement(String uri,Attributes attributes) throws SAXException { 
if (qName.equals("employees")) { 
return; 
} 
if (qName.equals("employee")) { 
System.out.println(qName); 
} 
if (attributes.getLength() > 0) { 
this.attributes = attributes; 
this.hasAttribute = true; 
} 
} 
public void endElement(String uri,String qName) 
throws SAXException { 
if (hasAttribute && (attributes != null)) { 
for (int i = 0; i < attributes.getLength(); i++) { 
System.out.println(attributes.getQName(0) 
+ attributes.getValue(0)); 
} 
} 
} 
public void characters(char[] ch,int length) 
throws SAXException { 
System.out.println(new String(ch,length)); 
} 
} 


DOM4J生成和解析XML文档
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.Writer; 
import java.util.Iterator; 

import org.dom4j.Document; 
import org.dom4j.DocumentException; 
import org.dom4j.DocumentHelper; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
import org.dom4j.io.XMLWriter; 
/** 
* 
* @author hongliang.dinghl 
* Dom4j 生成XML文档与解析XML文档 
*/ 
public class Dom4jDemo implements XmlDocument { 

public void createXml(String fileName) { 
Document document = DocumentHelper.createDocument(); 
Element employees=document.addElement("employees"); 
Element employee=employees.addElement("employee"); 
Element name= employee.addElement("name"); 
name.setText("ddvip"); 
Element sex=employee.addElement("sex"); 
sex.setText("m"); 
Element age=employee.addElement("age"); 
age.setText("29"); 
try { 
Writer fileWriter=new FileWriter(fileName); 
XMLWriter xmlWriter=new XMLWriter(fileWriter); 
xmlWriter.write(document); 
xmlWriter.close(); 
} catch (IOException e) { 

System.out.println(e.getMessage()); 
} 


} 


public void parserXml(String fileName) { 
File inputXml=new File(fileName); 
SAXReader saxReader = new SAXReader(); 
try { 
Document document = saxReader.read(inputXml); 
Element employees=document.getRootElement(); 
for(Iterator i = employees.elementIterator(); i.hasNext();){ 
Element employee = (Element) i.next(); 
for(Iterator j = employee.elementIterator(); j.hasNext();){ 
Element node=(Element) j.next(); 
System.out.println(node.getName()+":"+node.getText()); 
} 

} 
} catch (DocumentException e) { 
System.out.println(e.getMessage()); 
} 
System.out.println("dom4j parserXml"); 
}
} 

JDOM生成和解析XML import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.output.XMLOutputter; /** * * @author hongliang.dinghl * JDOM 生成与解析XML文档 * */ public class JDomDemo implements XmlDocument { public void createXml(String fileName) { Document document; Element root; root=new Element("employees"); document=new Document(root); Element employee=new Element("employee"); root.addContent(employee); Element name=new Element("name"); name.setText("ddvip"); employee.addContent(name); Element sex=new Element("sex"); sex.setText("m"); employee.addContent(sex); Element age=new Element("age"); age.setText("23"); employee.addContent(age); XMLOutputter XMLOut = new XMLOutputter(); try { XMLOut.output(document,new FileOutputStream(fileName)); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void parserXml(String fileName) { SAXBuilder builder=new SAXBuilder(false); try { Document document=builder.build(fileName); Element employees=document.getRootElement(); List employeeList=employees.getChildren("employee"); for(int i=0;iElement employee=(Element)employeeList.get(i); List employeeInfo=employee.getChildren(); for(int j=0;jSystem.out.println(((Element)employeeInfo.get(j)).getName()+":"+((Element)employeeInfo.get(j)).getValue()); } } } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
原文链接:https://www.f2er.com/xml/296234.html

猜你在找的XML相关文章