zoukankan      html  css  js  c++  java
  • sax(用于处理XML事件驱动的推模型)解析例子

    SAX解析

    Java程序如下:

    import org.xml.sax.helpers.DefaultHandler;
    
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    
    import org.xml.sax.Attributes;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    import org.xml.sax.XMLReader;
    
    public class Test7 extends DefaultHandler
    {
        int indent = 0;
    
       public Test7() {
       }
       
       public void startElement(String namespaceURI, String localName, 
               String qName, Attributes atts) throws SAXException {
           if (qName == "response") {
                  System.out.println("User: " + atts.getValue("username"));
               } else if (qName == "question") {
                  thisQuestion = atts.getValue("subject");
               }
                  
               thisElement = qName;
    
        
       }
       
      public void endElement(String namespaceURI, String localName, String qName)
       throws SAXException {
           
           thisQuestion = "";
           thisElement = "";
       }
      public void characters(char[] ch, int start, int length)
      throws SAXException  {
    
        if (thisElement == "question") {
        printIndent(4);
        System.out.print(thisQuestion + ": ");
        System.out.println(new String(ch, start, length));
        }
      }
    
    
    
    
       public void startDocument() throws SAXException {
           System.out.println("Tallying survey results...");   
           indent = -4;
    
       }
       
       public void printIndent(int indentSize) {
           for (int s = 0; s < indentSize; s++) {
              System.out.print(" ");
           }
        }
       
       String thisQuestion = "";
       String thisElement = "";
    
    
    
    
       public static void main (String args[]) {
          
       XMLReader xmlReader = null;
          
          try {
    
             SAXParserFactory spfactory = SAXParserFactory.newInstance();
             
             SAXParser saxParser = spfactory.newSAXParser();
    
             xmlReader = saxParser.getXMLReader();
             xmlReader.setContentHandler(new Test7());
    
             InputSource source = new InputSource("surveys.xml");
             xmlReader.parse(source);
             
             
          } catch (Exception e) {
                System.err.println(e);
                System.exit(1);
          }
          
    
       }
    }


    xml文件如下:

    <?xml version="1.0"?>
    <surveys>
        <response username="bob">
           <question subject="appearance">A</question>
           <question subject="communication">B</question>
           <question subject="ship">A</question>
           <question subject="inside">D</question>
           <question subject="implant">B</question>
        </response>
        <response username="sue">
           <question subject="appearance">C</question>
           <question subject="communication">A</question>
           <question subject="ship">A</question>
           <question subject="inside">D</question>
           <question subject="implant">A</question>
        </response>
        <response username="carol">
           <question subject="appearance">A</question>
           <question subject="communication">C</question>
           <question subject="ship">A</question>
           <question subject="inside">D</question>
           <question subject="implant">C</question>
        </response>
    </surveys>

    执行效果如下:

    Tallying survey results...
    User: bob
        appearance: A
        communication: B
        ship: A
        inside: D
        implant: B
    User: sue
        appearance: C
        communication: A
        ship: A
        inside: D
        implant: A
    User: carol
        appearance: A
        communication: C
        ship: A
        inside: D
        implant: C

  • 相关阅读:
    CloudFoundry 中的GoRouter性能測试
    Android-SharedPreferences
    Oracle 闪回表实验
    使用Jfree实现吧条形图,java代码
    ZOJ Monthly, October 2010 ABEFI
    熟知CDN
    看,2015阿里巴巴视觉设计人员面临的问题招收学校
    于win7使用虚拟磁盘隐藏文件
    2015广东工业大学ACM学校巡回赛 I 游戏高手 (如压力dp)
    spring mvc 错误摘要--。位。
  • 原文地址:https://www.cnblogs.com/dreamzhiya/p/3909670.html
Copyright © 2011-2022 走看看