JAXP:(XML处理的Java API) 这是java自带的处理xml的API,虽然比较柴,但是SUN公司还是给提供了;
JAXP(Java API for XMLProcessing,意为XML处理的Java API)是Java XML程序设计的应用程序接口之一,它提供解析和验证XML文档的能力。JAXP是在Java社区进程下开发的,包括JSR 5 (JAXP 1.0)和 JSR 63 (JAXP 1.1和1.2)两个规范。
JAXP解析XML的三种基本接口为:
文档对象模型解析接口或DOM接口
XML简单API解析接口或SAX接口
XML流API或StAX接口(是JDK 6的一部分,为JDK 5提供单独的包)除了解析接口,JAXP还提供了XSLT接口用来对XML文档进行数据和结构的转换。
JAXP之xml的解析方式有: DOM解析和SAX解析
========================JAXP之DOM方式解析xml文件代码=========================
@Test
public void domTest() throws ParserConfigurationException, FileNotFoundException, SAXException, IOException{
DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance();
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
Document parse = newDocumentBuilder.parse(new FileInputStream("demo.xml"));
NodeList elementsByTagName = parse.getElementsByTagName("address");
for (int i = 0; i < elementsByTagName.getLength(); i++) {
String textContent = elementsByTagName.item(i).getChildNodes().item(1).getTextContent();
System.out.println(textContent);
}
}
========================JAXP之SAX方式解析xml文件代码=========================
@Test
public void saxTest() throws ParserConfigurationException, SAXException, IOException{
SAXParserFactory newInstance = SAXParserFactory.newInstance();
SAXParser newSAXParser = newInstance.newSAXParser();
newSAXParser.parse(new FileInputStream("demo.xml"), new ContentHandler() {
@Override
public Object getContent(URLConnection urlc) throws IOException {
// TODO Auto-generated method stub
return null;
}
});
}
========================以下个人总结=========================
其实xml就是一个文件,我们解析xml的逻辑无非就是用io流读取文件,然后对读取的内容进行元素标签识别,翻译出xml文件内容
的过程,这些操作在SUN的JAXP中做了一些封装,但是我们从上边的代码可以看出操作有点儿麻烦,因此,就有一些开源组织,自己
编写了一些解析xml的开发包,比如dom4j,下一章,我们聊聊dmo4j...