将JerichoHTML分析器元素转换为字符串

时间:2015-03-20 15:37:39

标签: java casting jericho-html-parser

我使用返回List的JerichoHTML解析器(getAllElements方法)解析HTML数据。但是,我需要将数据存储在String []中。但是,我是如何做到的,(即使通过嵌套式转换,如(String)((Object)theList))它总是失败....任何想法如何解决这个问题?在jericho docs上找不到任何关于此的帮助...

    public static String[] htmlParser(String htmlText){
    Source source = new Source(htmlText);
    List<Element> filteredList = source.getAllElements("p");
    String[] filteredArray = new String[filteredList.size()];
    for(int i = 0; i<filteredList.size();i++){
        filteredArray[i] =(String) ((Object) filteredList.get(i));
        }
    return filteredArray;
}

错误如下:

Exception in thread "main" java.lang.ClassCastException: net.htmlparser.jericho.Element cannot be cast to java.lang.String
at InternalLinking.InputKeywordsLinksAlternative.htmlParser(InputKeywordsLinksAlternative.java:156)
at InternalLinking.InputKeywordsLinksAlternative.inputLinksCountLess150(InputKeywordsLinksAlternative.java:70)
at InternalLinking.InputKeywordsLinksAlternative.applyWordCountFilters(InputKeywordsLinksAlternative.java:61)
at InternalLinking.InputKeywordsLinksAlternative.main(InputKeywordsLinksAlternative.java:21)

1 个答案:

答案 0 :(得分:0)

在java中,强制转换永远不会更改对象的类型,而是通知编译器,您更准确地知道该类型。这不是这种情况。你想要的是转换。在java中没有通用的转换方法,但转换为String可以通过对象的toString()方法或通过Sring.valueOf()

以null保存方式完成。
for (int i = 0; i < filteredList.size(); i++) {
    filteredArray[i] = String.valueOf(filteredList.get(i));
}