详解Java解析XML的四种方法

来源:java认证发布时间:2012-11-12 13:15:36java认证视频

    }  package com.alisoft.facepay.framework.bean; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; /** * * @author hongliang.dinghl * SAX文档解析 */ public class SaxDemo implements XmlDocument { public void createXml(String fileName) { System.out.println("<<"+filename+">>"); } public void parserXml(String fileName) { SAXParserFactory saxfac = SAXParserFactory.newInstance(); try { SAXParser saxparser = saxfac.newSAXParser(); InputStream is = new FileInputStream(fileName); saxparser.parse(is, new MySAXHandler()); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } class MySAXHandler extends DefaultHandler { boolean hasAttribute = false; Attributes attributes = null; public void startDocument() throws SAXException { System.out.println("文档开始打印了"); } public void endDocument() throws SAXException { System.out.println("文档打印结束了"); } public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (qName.equals("employees")) { return; } if (qName.equals("employee")) { System.out.println(qName); } if (attributes.getLength() > 0) { this.attributes = attributes; this.hasAttribute = true; } } public void endElement(String uri, String localName, String qName) throws SAXException { if (hasAttribute && (attributes != null)) { for (int i = 0; i < attributes.getLength(); i++) { System.out.println(attributes.getQName(0) + attributes.getValue(0)); } } } public void characters(char[] ch, int start, int length) throws SAXException { System.out.println(new String(ch, start, length)); } }
    3.DOM4J生成和解析XML文档
    DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J.
    Java代码
    package com.alisoft.facepay.framework.bean;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Writer;
    import java.util.Iterator;
    import org.dom4j.Document;
    import org.dom4j.DocumentException;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    /**  *
    * @author hongliang.dinghl  * Dom4j 生成XML文档与解析XML文档  */
    public class Dom4jDemo implements XmlDocument {
    public void createXml(String fileName) {
    Document document = DocumentHelper.createDocument();
    Element employees=document.addElement("employees");
    Element employee=employees.addElement("employee");
    Element name= employee.addElement("name");
    name.setText("ddvip");
    Element sex=employee.addElement("sex");
    sex.setText("m");
    Element age=employee.addElement("age");
    age.setText("29");
    try {
    Writer fileWriter=new FileWriter(fileName);
    XMLWriter xmlWriter=new XMLWriter(fileWriter);
    xmlWriter.write(document);
    xmlWriter.close();
    } catch (IOException e) {
    System.out.println(e.getMessage());
    }
    }
    public void parserXml(String fileName) {
    File inputXml=new File(fileName);
    SAXReader saxReader = new SAXReader();
    try {
    Document document = saxReader.read(inputXml);
    Element employees=document.getRootElement();
    for(Iterator i = employees.elementIterator(); i.hasNext();){
    Element employee = (Element) i.next();
    for(Iterator j = employee.elementIterator(); j.hasNext();){
    Element node=(Element) j.next();
    System.out.println(node.getName()+":"+node.getText());
    }
    }
    } catch (DocumentException e) {
    System.out.println(e.getMessage());
    }
    System.out.println("dom4j parserXml");
    }
    }

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答