XML 使用 sax 解析器从特定的重复标记中获取值 java

XML getting value from specific duplicate tag using sax parser java

我正在尝试使用 sax 解析器在 xml 中获取一些信息,

这里是:

<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>

基本上我想取ident tag(),在xml里面有4个ident,但问题是我不想全部取,我只想取第一个ident( show ident) 我已经在尝试通过实现布尔值来标记我们在 xml 元素中的位置来解决这个问题,但我对如何在第一个 ident 处停止感到困惑。

非常感谢您的关注

使用从 org.xml.sax.helpers.DefaultHandler 派生的 class。一旦在 startElement() 方法中找到所需的元素,就立即抛出 SAXException。这将立即停止 SAX 解析器。

这里提供了示例 - Stop a SAX parser when you have enough data

抱歉发帖晚了,对于那些试图解决这个问题的人,除了使用 mr dmitry trifonov 方法外,你们还可以在 sax 中使用 Stack 方法,你们可以在这里找到 sax 的 stack 方法文章:http://www.javaworld.com/article/2076202/java-se/mapping-xml-to-java--part-2.html

希望对您有所帮助!