繁体   English   中英

使用Java switch语句在特定HTML标记之间捕获文本

[英]Grabbing text inbetween specific HTML tags using Java switch statement

我正在尝试获取文件中<AU></AU>标记之间的文本,然后在新行上打印出结果。 我需要使用switch语句和一个名为CharacterFromFileReader的帮助程序类来做到这一点,该类一个接一个地读取文件中的每个字符。

到目前为止,这是我想出的代码:

package code;

import java.util.HashMap;

import util.general.CharacterFromFileReader;

public class HW4 {

String _toReturn = "";

public void authorScanner(String inputPath){
    CharacterFromFileReader reader = new CharacterFromFileReader(inputPath);

    int state = 0;

    while(reader.hasNext()){
        char c = reader.next();

        switch(state){
            case 0:
                _toReturn = "";

                if(c=='<'){
                    state = 1;
                }

            case 1:
                if(c=='A'){
                    state = 2;
                }

            case 2:
                if(c=='U'){
                    state = 3;
                }
            case 3:
                if(c=='>'){
                    state = 4;
                }
            case 4:
                if(c=='<'){
                    state = 5;
                }
                if(c != '<'){
                    _toReturn = _toReturn + c;
                    state = 4;
                }
            case 5:
                if(c=='/'){
                    state = 6;
                }
            case 6:
                if(c=='A'){
                    state = 7;
                }
            case 7:
                if(c=='U'){
                    state = 8;
                }
            case 8:
                if(c=='>'){
                    System.out.println(_toReturn);
                    state = 0;
                }
                else{
                    state = 0;
                }
        }   

    }
}

}

但是,当我运行authorScanner(test.xml);时,得到以下输出:

>
>

这是test.xml的内容:

<AU>AUTHOR</AU>

我究竟做错了什么? 我相信我已经设置了switch语句来搜索<AU> ,然后将以下字符附加到名为_toReturn的字符串中。 在将字符追加到字符串时,应检查字符'<',如果存在,请继续检查结束标记</AU> 如果存在结束标记,请打印出_toReturn。

关于如何编写适当解决方案的任何提示/建议?

看来您错过了break; 您在每种情况下的语句。 如果添加这些,看起来它可能会完成您的预期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM