一、Java操作XML
JAXP,全称Java API for XML Processing,是由Sun公司制定的一套用于处理XML的API。JAXP支持文档对象模型(DOM)、简单API(SAX)和扩展样式表语言转换(XSLT)。使用JAXP可以以兼容且独立于任何特定的XML处理器的方式在Java应用中处理XML。
使用JAXP,你可以使用基于树的DOM API或基于事件的SAX API从任何输入源解析XML。你也可以使用JAXP转换API在XML文档和其它文档(如HTML)之间执行转换。
以下是使用JAXP创建、解析、查找和修改XML文件的一个简单示例:
import javax.xml.parsers.*; import org.w3c.dom.*; public class JAXPExample { public static void main(String[] args) throws Exception { // 创建DocumentBuilderFactory对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 创建DocumentBuilder对象 DocumentBuilder builder = factory.newDocumentBuilder(); // 解析XML文件获取Document对象 Document document = builder.parse("test.xml"); // 使用Document对象创建、查找和修改XML元素 Element root = document.getDocumentElement(); // 获取根元素 NodeList list = root.getElementsByTagName("item"); // 查找元素 Node node = list.item(0); if(node != null && node.getNodeType() == Node.ELEMENT_NODE) { Element element = (Element) node; element.setTextContent("New Content"); // 修改元素内容 } // 输出修改后的XML TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.transform(new DOMSource(document), new StreamResult(System.out)); } }
在这个例子中,我们首先使用JAXP的DocumentBuilderFactory创建一个DocumentBuilder对象。然后我们使用DocumentBuilder对象解析XML文件获取Document对象。使用Document对象,我们可以创建、查找和修改XML元素。最后,我们使用Transformer对象把修改后的Document对象输出成XML形式。
注意:需要包含以下jar文件在类路径中:dom.jar, sax.jar, jaxp-api.jar, xalan.jar 和 xercesImpl.jar.
JAXB,全名Java Architecture for XML Binding,是一种用于将Java对象与XML数据相互转换的简易框架。它是JavaSE的一部分,用于将XML解析为Java对象,或者将Java对象序列化为XML。
以下是一个简单示例,演示了使用JAXB将Java对象转换为XML以及反向转换的过程:
import javax.xml.bind.*; public class JAXBExample { public static vo