在java中阅读在线文档

时间:2013-12-30 20:54:40

标签: java

我正在使用

URL url = new URL("http://www.puzzlers.org/pub/wordlists/pocket.txt"); 
Scanner s = new Scanner(url.openStream());

阅读我的文件。但是当我尝试输出字符串时,我得到了一些不必要的标签。我的要求是能够按原样阅读文件(即没有任何不必要的标签。)

以下是我编写的代码:

URL url = new URL("Link");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
String[] wordArray;
int wordCount;

while ((str = in.readLine()) != null) {
System.out.println(str);
wordArray = str.split("\\s+");
wordCount = wordArray.length;
System.out.println("Word count is = " + wordCount);
}

in.close();

以下是我得到的输出。我不想要任何不必要的标签,你可以在下面的输出中看到。我只想要标签之间可以看到的实际文本。不必要的标签意味着

等,您可以在下面的输出代码段中看到。我只想在我的字符串中找到“美国证券和交易所”等文本。

Word count is = 1
<P STYLE="font: 10pt/normal Arial, Helvetica, Sans-Serif; margin: 0; padding: 0; text-align: center"></P>
Word count is = 12

Word count is = 1
<P STYLE="font: 10pt/normal Arial, Helvetica, Sans-Serif; margin: 0; padding: 0; text-align: center"><B>UNITED STATES SECURITIES AND EXCHANGE
Word count is = 16
COMMISSION</B></P>
Word count is = 1

Word count is = 1
<P STYLE="font: 10pt/normal Arial, Helvetica, Sans-Serif; margin: 0; padding: 0; text-align: center"><B>Washington, D.C. 20549</B></P>
Word count is = 14

Word count is = 1
<P STYLE="font: 10pt/normal Arial, Helvetica, Sans-Serif; margin: 0; padding: 0; text-align: center"><B>&nbsp;</B></P>
Word count is = 12

4 个答案:

答案 0 :(得分:4)

你得到的是HTML源代码。例如,如果您只对body标签的内容感兴趣,可以使用jsoup来提取它并删除正文中的所有标签。

答案 1 :(得分:1)

jsoup做这样的事情:

    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.nodes.Element;
    import org.jsoup.select.Elements;

    String url = "http://www.google.com"
    Document doc = null;
    try {
        doc = Jsoup.connect(url).get();
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }

    if(doc==null)
        return;

    //start browsing
    // something like
    for(Element p : doc.getElementsByTag("p")){
        System.out.println(p.text());
    }

答案 2 :(得分:0)

str = str.replaceAll("\\<.*?>","");

答案 3 :(得分:0)

您可以将Jsoup Library用于此作业[http://www.jsoup.org]。请参阅下面的代码,我使用了您在问题中提到的网址并提取了文字。

import java.io.IOException;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class main {


    public static void main(String[] args) throws IOException {

        String url = "http://www.puzzlers.org/pub/wordlists/pocket.txt";
        Document doc = Jsoup.connect(url).get();
        System.out.println(doc.getElementsByTag("body").html());
    }
}