j2me中的Html文本提取

时间:2012-10-05 09:20:09

标签: java html blackberry java-me

我在html网页上有一个字符串,如下所示:

String htmlString =

<span style="mso-bidi-font-family:Gautami;mso-bidi-theme-font:minor-bidi">President Pranab pay great 
tributes to Motilal Nehru on occasion of 
</span>
150th birth anniversary. Pranab said institutions evolved by 
leaders like him should be strengthened instead of being destroyed. 
<span style="mso-spacerun:yes">&nbsp;
</span>
He listed his achievements like his role in evolving of Public Accounts Committee and protecting independence of 
Legislature from the influence of the Executive by establishing a separate cadre for the Central Legislative Assembly,   
the first set of coins and postal stamps released at the function to commemorate the event.
</p> 

我需要从上面的String中提取文本,提取后我的输出应该看起来像

输出

President Pranab pay great tributes to Motilal Nehru on occasion of 150th birth anniversary. Pranab said institutions evolved by leaders like him should be strengthened instead of being destroyed.  He listed his achievements like his role in evolving of Public Accounts Committee and protecting independence of Legislature from the influence of the Executive by establishing a separate cadre for the Central Legislative Assembly, now Parliament. Calling himself a student of history, he said Motilal's Swaraj Party acted as a disciplined assault force in the Legislative Assembly and he was credited with evolving the system of a Public Accounts Committee which is now one of the most effective watchdogs over executive in matters of money and finance. Mukherjee also received the first set of coins and postal stamps released at the function to commemorate the event.

为此,我使用了以下逻辑:

int spanIndex = content.indexOf("<span");
spanIndex = content.indexOf(">", spanIndex);
int endspanndex = content.indexOf("</span>", spanIndex);
content = content.substring(spanIndex  + 1, endspanndex);

我的结果是:

President Pranab pay great tributes to Motilal Nehru on occasion of

我使用了不同的HTMLParsers,但是在j2me

的情况下这些不起作用

任何人都可以帮我获取完整的描述文字吗?谢谢.....

4 个答案:

答案 0 :(得分:2)

如果您使用的是BlackBerry OS 5.0或更高版本,则可以使用BrowserField来解析HTML into a DOM document

答案 1 :(得分:1)

您可以使用与其他字符串相同的方式继续使用。或者,简单的有限状态自动机可以解决这个问题。我在moJab procect中看到了这样的解决方案(你可以下载源here)。在mojab.xml包中,有一个为j2me设计的简约XML解析器。我的意思是它也会解析你的例子。看看消息来源,这只是三个简单的分支。它似乎无需修改即可使用。

答案 2 :(得分:1)

我们可以在j2me的情况下提取文本,因为它不支持HTML Parsers,如下所示:

private String removeHtmlTags(String content) {

        while (content.indexOf("<") != -1) {

            int beginTag;
            int endTag;

            beginTag = content.indexOf("<");
            endTag = content.indexOf(">");
            if (beginTag == 0) {
                content = content.substring(endTag
                        + 1, content.length());
            } else {
                content = content.substring(0, beginTag) + content.substring(endTag
                        + 1, content.length());
            }
        }
        return content;
    }

答案 3 :(得分:0)

JSoup是一个非常受欢迎的库,用于从HTML文档中提取文本。这是同一个one such example