Search code examples
javaxmlxml-parsingdesktop-application

XML getting value from specific duplicate tag using sax parser java


I'm trying to getting some information in my xml using sax parser,

Here it is :

<IDENT>show</IDENT>
        <FORMAL_PARAM_LIST>
        FORMAL_PARAM_LIST
        </FORMAL_PARAM_LIST>
        <BLOCK_SCOPE>
        BLOCK_SCOPE
           <VAR_DECLARATION>
           VAR_DECLARATION
              <LOCAL_MODIFIER_LIST>
              LOCAL_MODIFIER_LIST
              </LOCAL_MODIFIER_LIST>
              <TYPE>
              TYPE
                 <QUALIFIED_TYPE_IDENT>
                 QUALIFIED_TYPE_IDENT
                    <IDENT>MenuUI</IDENT>
                 </QUALIFIED_TYPE_IDENT>
              </TYPE>
              <VAR_DECLARATOR_LIST>
              VAR_DECLARATOR_LIST
                 <VAR_DECLARATOR>
                 VAR_DECLARATOR
                    <IDENT>menu</IDENT>
                    <EXPR>
                    EXPR
                       <CLASS_CONSTRUCTOR_CALL>
                       STATIC_ARRAY_CREATOR
                          <QUALIFIED_TYPE_IDENT>
                          QUALIFIED_TYPE_IDENT
                             <IDENT>MenuUI</IDENT>
                          </QUALIFIED_TYPE_IDENT>
                          <ARGUMENT_LIST>
                          ARGUMENT_LIST
                          </ARGUMENT_LIST>
                       </CLASS_CONSTRUCTOR_CALL>
                    </EXPR>
                 </VAR_DECLARATOR>
              </VAR_DECLARATOR_LIST>
           </VAR_DECLARATION>
           <EXPR>
           EXPR
              <METHOD_CALL>
              METHOD_CALL
                 <DOT>.<IDENT>menu</IDENT><IDENT>showJASPform</IDENT></DOT>
                 <ARGUMENT_LIST>
                 ARGUMENT_LIST
                 </ARGUMENT_LIST>
              </METHOD_CALL>
           </EXPR>
        </BLOCK_SCOPE>

Basically, I want to take ident tag (), in the xml there's 4 ident, but the problem is I don't want to take them all, I only want to take the first ident (show ident) I am already trying to figure it out by implementing boolean value to flag our position in the xml's element, but I confused how I can stop at the first ident.

Thank you very much for your attention


Solution

  • Use class derived from org.xml.sax.helpers.DefaultHandler. Throw SAXException as soon as you will find desired element in startElement() method. This will stop SAX parser immediately.

    Here are example provided - Stop a SAX parser when you have enough data