私は、Web サイト パーサーを含む最初のプロジェクトに取り組んでいました。私はパーサーについて少し学ぼうとしましたが、ここにある「Jsoup」というライブラリに出くわしました: http://jsoup.org/download
次に、チュートリアル Web サイトで見つけたこのコード例を試しました。
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class HTMLParserExample1 {
public static void main(String[] args) {
Document doc;
try {
// need http protocol
doc = Jsoup.connect("http://google.com").get();
// get page title
String title = doc.title();
System.out.println("title : " + title);
// get all links
Elements links = doc.select("a[href]");
for (Element link : links) {
// get the value from href attribute
System.out.println("\nlink : " + link.attr("href"));
System.out.println("text : " + link.text());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
コードはうまく機能したので、アプリケーションの残りの部分と組み合わせることを試みることにしました (これは、テキスト ボックスが内部にある JFrame です)。
だから私がやろうとしたのは、 [code]System.out.println();[/code] の中に入れたものを文字列の中に入れることです。これを行っている間、次の方法で実行しようとしているときにエラーが発生しました。
s + "\nlink : " + link.attr("href");
s + "text : " + link.text();
エラーが発生していましたが、これが正しい方法ではないことにすぐに気付きました。そのため、メソッド String.concat を見つけて、それを使用することにしました。これを使用した後もまだ機能せず、解析する必要があるものも System.out コマンドで出力されなくなることに気付きました..
これが私の現在のコードです:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JParser {
private String finishedParse;
public static void JParser() {
//String that should hold the finished parse
String finishedParse = new String();
//test string used to see if what the Netbeans IDE recomended me to do work
String tester = new String();
finishedParse = "";
Document doc;
try {
//Need http protocol
doc = Jsoup.connect("http://google.com").get();
//Get page title
String title = doc.title();
System.out.println("title : " + title);
//Get all links
Elements links = doc.select("a[href]");
for (Element link : links) {
//Get the value from href attribute
System.out.println("\nlink : " + link.attr("href"));
System.out.println("text : " + link.text());
tester = finishedParse.concat("\nlink : " + link.attr("href"));
tester = finishedParse.concat("text : " + link.text());
tester = finishedParse.concat("\n");
}
} catch (IOException e) {
e.printStackTrace();
System.out.println(e);
}
}
//The method i wish to call from my other class to get the parsed text returned.
public String getParsedText(String parsedText){
parsedText = finishedParse;
return parsedText;
}
}
問題は、System.out コマンドで出力されるはずのものが出力されず、解析されたテキストを文字列に取り込む方法がまだわからないことです。
私は学習に本当に興味があり、コードの何が間違っているのかを見つけるのに苦労しています。Web で回答を検索しましたが、成功しませんでした。
残っているエラー は次のとおりです。2 つの System.out ステートメントがコンソールに何も出力していません。チュートリアルからコードをコピーしたときに機能しました。両方のコードは上記の投稿にあります。読んで助けてください。
問題は、私が変な方法でクラスに電話したことでした.私の最善の推測では、昨日疲れていたので、私の無知が始まりました..