Java中Xml解析(四种方法)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中Xml解析(四种方法)相关的知识,希望对你有一定的参考价值。
1、DOM,Document Object Model,基于DOM的XML分析器将XML文档转换成一个对象模型的集合(DOC树),通过对此模型操作实现对XML文档数据的操作,可以在任何时候对XML文档的任何一部分数据进行访问。
DOC强制使用树模型来访问XML文档中信息
很灵活,当XML文档较大时对内存需求比较高,而且对结构复杂的DOC树的遍历也很耗时,对机器要求比较高。
// step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器) DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); // System.out.println("class name: " + dbf.getClass().getName()); // step 2:获得具体的dom解析器 DocumentBuilder db = dbf.newDocumentBuilder(); // System.out.println("class name: " + db.getClass().getName()); // step3: 解析一个xml文档,获得Document对象(根结点) Document document = db.parse(new File("candidate.xml")); NodeList list = document.getElementsByTagName("PERSON");
2、Sax,Simple APIs for XML,提供的是顺序访问模式,快速读写XML数据的方式。
//step1: 获得SAX解析器工厂实例 SAXParserFactory factory = SAXParserFactory.newInstance(); //step2: 获得SAX解析器实例 SAXParser parser = factory.newSAXParser(); //step3: 开始进行解析 parser.parse(new File("student.xml"), new MyHandler())
3、JDOM,一个开源项目,基于树形结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作
import java.io.File; import java.io.FileOutputStream; import java.util.List; import org.jdom.Attribute; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; public class JDomTest2 { public static void main(String[] args) throws Exception { SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(new File("jdom.xml")); Element element = doc.getRootElement(); System.out.println(element.getName()); Element hello = element.getChild("hello"); System.out.println(hello.getText()); List list = hello.getAttributes(); for(int i = 0 ;i < list.size(); i++) { Attribute attr = (Attribute)list.get(i); String attrName = attr.getName(); String attrValue = attr.getValue(); System.out.println(attrName + "=" + attrValue); } hello.removeChild("world"); XMLOutputter out = new XMLOutputter(Format.getPrettyFormat().setIndent(" ")); out.output(doc, new FileOutputStream("jdom2.xml")); }
}
4、Dom4j
以上是关于Java中Xml解析(四种方法)的主要内容,如果未能解决你的问题,请参考以下文章