zoukankan      html  css  js  c++  java
  • xml六种解析方式

    /*src/p1.xml文档*/

    <?xml version = "1.0" encoding = "utf-8">
    <Person>
        <p1>
            <name>张三</name>
            <age>23</age>
        </p1>
        <p1>
            <name>李四</name>
            <age>24</age>
        </p1>
    </person>


    /*(-)jaxp解析器*/

    /*(1)jaxp的document解析方式*/

    public static void main(String []args){
        //1.创建解析器工厂
        //2.创建解析器
        //3.获取Document
        //4.获取name节点集合
        //5.获取name值
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document d = db.parse("src/p1.xml");
        NodeList list = d.getElementsByTagName("name");
        for(int i = 0;i < list.getLength();i++){
            Node name = list.item(i);
            String s = name.getTextContent();
            syso(s);
        }
    }


    /*(2)jaxp的sax解析方式*///该方式只能实现查询操作
     

     1   //1.创建jaxp的sax解析器工厂
     2     //2.创建解析器
     3     //3.调用parse方法
     4     //4.重写DefaultHandler类
     5     SAXParserFactory spf = SAXParserFactory.newInstance();
     6     SAXParser sp = spf.newSAXParser();
     7     sp.parse("p1.xml",new dh());
     8 
     9     class dh extends DefaultHandler{
    10             public void startElement(String uri, String localName, String qName,
    11             Attributes attributes) throws SAXException {
    12         System.out.print("<"+qName+">");
    13     }
    14 
    15     @Override
    16     public void endElement(String uri, String localName, String qName)
    17             throws SAXException {
    18         System.out.print("<"+qName+"/>");
    19     }
    20 
    21     @Override
    22     public void characters(char[] ch, int start, int length)
    23             throws SAXException {
    24             System.out.print(new String(ch,start,length));
    25     }
    26     }

     
    /*dom4j解析器*/

    public static void main(String[] args){//实现xml的查询操作
        //1.创建dom4j解析器
        //2.获取document
        //3.获取根元素
        //4.获取p1集合
        //5.获取name元素
        //6.获取name值
        SAXReader sr = new SAXReader();
        Document d = sr.read("p1.xml");
        Element root = d.getRootElement("p1");
        List<Element> list = root.elements("name");
        for(Element e:list){
            Element name = e.element();
            String s = name.getText();
            syso(s);
        }
    
    }




  • 相关阅读:
    去中心化存储的QoS是什么?
    谈如何真正地做好去中心存储?
    Kowala协议:一组分布式,自我调节,资产跟踪特性的加密货币(二)
    MySQL主从备份
    Java面试总结-基础篇2
    Java面试总结-基础篇1
    锁定网络问题的方法
    我是如何在实际项目中解决MySQL性能问题
    serialVersionUID的作用
    Windows和Linux下如何自动备份MySQL
  • 原文地址:https://www.cnblogs.com/fanfusuzi/p/14704673.html
Copyright © 2011-2022 走看看