参考文献:http://www.blogjava.net/zzzlyr/articles/314288.htmlhtml
xmljava的解析方式有不少种,咱们如今就先看一下关于XML解析中的DOM解析java
DOM解析器的接口已经被W3C标准化了。org.w3.dom包包含了接口类型的定义,好比:node
Document和Element等。不一样的提供者,好比Apache Organization和IBM都编写了实现这些接口的DOM解析器。SUN公司的XML处理JAVA API(Java API for XML Processing,JAXP)dom
库实际上能够插入到这些解析器中的任意一个中。可是SUN公司也在JAVA SDK中包含了本身的DOM解析器。在本文中我使用的就是JAVA的解析器。ui
1:要读入一个XML文档,首先要一个DocumentBuilder对象,能够这样获得:spa
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();.net
DocumentBuilder builder = factory.newDocumentBuilder();code
2:如今能够从文件中去读取一个XML文件了(文件路径:"F:""employees.xml")orm
获得XML文件有三种方式:xml
1:经过文件方式读取:
File file=new File("F:""employees.xml");
Document doc=builder.parse(file);
2:经过一个URL方式读取:
URL u=new URL("http://java.sun.com/index.html")
Document doc=builder.parse(u);
3:能够能过java IO 流的读取:
FileInputStream inputstream = new FileInputStream(
"F:""employees.xml");
Document doc=builder.parse(inputstream);
好了,有了基本的了解后,咱们开始上代码:
<?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> <NO>A1234</NO> <ADDR>四川省XX县XX镇XX路X段XX号</ADDR> </VALUE> <VALUE> <NO>B1234</NO> <ADDR>四川省XX市XX乡XX村XX组</ADDR> </VALUE> </RESULT>
而后是解析代码:
package www.yq.com.src; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; /** * @Project XMLSimpleTest * @File MyTest.java * @Package www.yq.com.src * @Date 2016年1月25日 下午3:41:39 * @Author * @email */ public class MyTest { //DOM(JAXP Crimson解析器) public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { File f = new File("E:\\qi.xml"); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = dbf.newDocumentBuilder(); Document document = documentBuilder.parse(f); NodeList nodeList = document.getElementsByTagName("VALUE"); for (int i = 0; i < nodeList.getLength(); i++) { System.out.println("车牌号:"+document.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue()); System.out.println("车牌地址:"+document.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue()); } } }
而后是运行结果:
好了,基本就是这样简单,无非是将文件加载进来,而后以树形式进行读取,删除,添加,这里要提一下的就是用到了工厂模式