JAXP(Java API for XML Processing,意为XML处理的Java API)
JAXP是SUN公司推出的,集成在javase中的用来解析和操作XML的应用程序接口,解析XML文档的方法有很多,用得最多的是DOM和SAX。
用DOM(文档对象模型)解析XML文档时,解析器解析整个XML文档并构造出该文档的一个完整的内存表示,当在内存中对XML文档操作完成后,可以将内存中的对象回写入XML文档中。这种方法的增删改操作都非常方便,但缺点是当文件过大时,容易发生内存溢出。
要解析XML文档并得到这个文档的对象,需要用javax.xml.parsers包下的DocumentBuilderFactory类中的newInstance()方法获得一个解析器工厂对象,并用这个对象的newDocumentBuilder()方法获得一个解析器对象。用解析器对象的
parse(String uri)方法解析指定XML文档并返回一个org.w3c.dom包下的Document对象。
得到Document对象后,可以通过getElementsByTagName(String tagname)方法获得指定标签名的NodeList列表,之后可以用NodeList列表的item(int index)方法得到指定角标的节点对象,之后便可以用Node接口中的一系列方法对其进行操作。
当操作完成后,可以通过javax.xml.transform包下的TransformerFactory.newInstance()
.newTransformer()方法得到回写转换器对象,然后用
该对象的transform(Source xmlSource, Result outputTarget)方法(Source参数可以通过new DOMSource(文档对象)方法获得,Result参数可以通过javax.xml.tramsform.stream包下的
StreamResult(String URL)方法获得
)将内存中内容回写入XML文档。