XML解析

xiaoxiao2021-02-27  326

domcument解析

public class DomDemo implements XmlDocument { //文档树 private Document document; //文件路径 private String fileName; /* * 该初始化方法用来获得解析器 */ public void init() { try { //先得到解析器工厂的实例 DocumentBuilderFactory factory = DocumentBuilderFactory .newInstance(); //取得到解析器 DocumentBuilder builder = factory.newDocumentBuilder(); //通过解析器来得到一个文档对象 this.document = builder.newDocument(); } catch (ParserConfigurationException e) { System.out.println(e.getMessage()); } } @Override public void createXml(String fileName) { //创建根节点 Element root = this.document.createElement("employees"); //把根节点加到文档树上去 this.document.appendChild(root); //创建了一个<employee>节点 Element employee = this.document.createElement("employee"); //创建name节点 Element name = this.document.createElement("name"); //给name节点里面里面添加文本节点 name.appendChild(this.document.createTextNode("丁宏亮")); //将name节点加到employee节点中去 employee.appendChild(name); Element sex = this.document.createElement("sex"); sex.appendChild(this.document.createTextNode("m")); employee.appendChild(sex); Element age = this.document.createElement("age"); age.appendChild(this.document.createTextNode("30")); employee.appendChild(age); //将创建好的employ节点加到跟节点里面去 root.appendChild(employee); //得到TransformerFactory工厂 TransformerFactory tf = TransformerFactory.newInstance(); try { //通过TransformerFactory工厂得到Transformer对象 Transformer transformer = tf.newTransformer(); //将documengt对象转换成dom源 DOMSource source = new DOMSource(document); transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); PrintWriter pw = new PrintWriter(new FileOutputStream(fileName)); StreamResult result = new StreamResult(pw); StreamResult consol=new StreamResult(System.out); transformer.transform(source, result); transformer.transform(source, consol); System.out.println("生成XML文件成功!"); } catch (TransformerConfigurationException e) { System.out.println(e.getMessage()); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } catch (FileNotFoundException e) { System.out.println(e.getMessage()); } catch (TransformerException e) { System.out.println(e.getMessage()); } } @Override 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 (FileNotFoundException e) { System.out.println(e.getMessage()); } catch (ParserConfigurationException e) { System.out.println(e.getMessage()); } catch (SAXException e) { System.out.println(e.getMessage()); } catch (IOException e) { System.out.println(e.getMessage()); } }
转载请注明原文地址: https://www.6miu.com/read-2216.html

最新回复(0)