zoukankan      html  css  js  c++  java
  • 解析xml

    解析xml使用两种方式

    第一

    使用XMLStreamReader,使用光标的方式

    @Test
        public void testread() throws Exception {
            InputStream ios =  XMLRead.class.getClassLoader().getResourceAsStream("persion.xml");
            XMLInputFactory factory = XMLInputFactory.newInstance();
            XMLStreamReader reader = factory.createXMLStreamReader(ios);
            while(reader.hasNext()){
                int type = reader.next();
                if(type==XMLStreamReader.START_ELEMENT){
                    System.out.println(reader.getName());
                }else if(type==XMLStreamReader.CHARACTERS){
                    System.out.println(reader.getText().trim());
                }else if(type==XMLStreamReader.END_ELEMENT){
                    System.out.println("/"+reader.getName());
                }
            }
    
        }

    第二

    XMLEventReader使用基于迭代模型的方式

    /**
         * 基于迭代模型的方式
         * @throws Exception
         */
        @Test
        public void testread3() throws Exception {
            InputStream ios =  XMLRead.class.getClassLoader().getResourceAsStream("persion.xml");
            XMLInputFactory factory = XMLInputFactory.newInstance();
            XMLEventReader reader = factory.createXMLEventReader(ios);
            while(reader.hasNext()){
                XMLEvent eve = reader.nextEvent();
                if(eve.isStartElement()){
                    String name = eve.asStartElement().getName().toString();
                    System.out.println(name);
                }
            }
    
        }

    优化后迭代模型

    @Test
        public void testread4() throws Exception {
            InputStream ios = XMLRead.class.getClassLoader().getResourceAsStream("persion.xml");
            XMLInputFactory factory = XMLInputFactory.newInstance();
            XMLEventReader reader = factory.createFilteredReader(factory.createXMLEventReader(ios), new EventFilter() {
                @Override
                public boolean accept(XMLEvent event) {
                    if (event.isStartElement()) {
                        return true;
                    }
                    return false;
                }
            });
            
            int num = 0;
            while (reader.hasNext()) {
                XMLEvent eve = reader.nextEvent();
                if (eve.isStartElement()) {
                    String name = eve.asStartElement().getName().toString();
                    System.out.println(name);
                }
                num++;
            }
            System.out.println(num);
        }
  • 相关阅读:
    南京网络赛题解 2018
    ACM 第二十天
    存储型XSS漏洞(pikachu)
    XSS跨站脚本(pikachu)——反射型xss(get和post)
    暴力破解(pikachu)——防范措施(简单了解)
    暴力破解02(pikachu)——验证码
    暴力破解01(pikachu)——基于表单
    安全软件burp suite pro破解版(亲测有效)
    sql lab的基础配置和1-4关闯关攻略(建议自学MySQL语言后再观看)
    sql lab的环境配置以及火狐浏览器的使用
  • 原文地址:https://www.cnblogs.com/songfahzun/p/5944974.html
Copyright © 2011-2022 走看看