使用java JDK中的DOM解析xml
import java.io.FileOutputStream; import java.io.PrintWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** DOM生成与解析XML文档 */ public class DomDemo{ /** * 创建xml文件 * @param filePath 文件完整路径 */ public void createXml(String filePath) { try { DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Element root = document.createElement("employees"); document.appendChild(root); Element employee = document.createElement("employee"); Element name = document.createElement("name"); name.appendChild(document.createTextNode("雨无声")); employee.appendChild(name); Element sex = document.createElement("sex"); sex.appendChild(document.createTextNode("m")); employee.appendChild(sex); Element age = document.createElement("age"); age.appendChild(document.createTextNode("30")); employee.appendChild(age); root.appendChild(employee); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); DOMSource source = new DOMSource(document); transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); PrintWriter pw = new PrintWriter(new FileOutputStream(filePath)); StreamResult result = new StreamResult(pw); transformer.transform(source, result); System.out.println("生成XML文件成功!"); } catch (Exception e) { System.out.println(e.getMessage()); } } /** * 解析xml,传入完整路径 */ public void parserXml(String fileName) { try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document document = db.parse(fileName); NodeList employees = document.getChildNodes(); for (int i = 0; i < employees.getLength(); i++) { Node employee = employees.item(i); NodeList employeeInfo = employee.getChildNodes(); for (int j = 0; j < employeeInfo.getLength(); j++) { Node node = employeeInfo.item(j); NodeList employeeMeta = node.getChildNodes(); for (int k = 0; k < employeeMeta.getLength(); k++) { System.out.println(employeeMeta.item(k).getNodeName()+ ":" + employeeMeta.item(k).getTextContent()); } } } System.out.println("解析完毕"); } catch (Exception e) { System.out.println(e.getMessage()); } } public static void main(String[] args) { DomDemo dd = new DomDemo(); //dd.createXml("D:\\test.xml"); dd.parserXml("D:\\test.xml"); } }