web上のHTMLテキストを、handleText()を用いてタグとタグにはさまれたテキストのみを取り出そうと思っています。
しかし「」が「?」になってしまうのです。
たとえば、
<html>
<body>
3月27nbsp;日
</body>
</html>
と書かれたHTMLソースがあると、handleText()で取り出すと、「?3?月?27?日」となってしまいます。
どうすれば「」を「?」と表示させずに、「3月27日」と表示させることができるのしょうか?
よろしくお願いします。
No.1
- 回答日時:
swingのDocumentParserでなくて
外部のHTMLパーサを使ってみては?
僕はプロじゃないので、詳しくはわからないのですが、
このswingのDocumentParserは、
「一般用のHTMLパーサ」としては作られていないのでは?
僕はプロじゃないので、
実際の業務の現場で「HTMLパース用」に
何が使われてるのかは知らないのですが、
全くレスがない所をみると、
このswingのDocumentParserは、
一般には使われてない??
---
ちなみに「外部のHTMLパーサを使ってみては?」と書いたのは、
すくなくともHTMLソースの"非タグな部分"(※DocumentParserのhandleText()
で得られるような部分のこと)を、
なんの変換もされずに"ありのまま"に取得できさえすれば、
あとはどうにでもなる、ということを念頭においています。
(※"ありのまま"に取得、というのは、
HTMLソースの「3月27nbsp;日」という文字列を
そのままの文字列として取得する、ということ。この"ありのままの"文字列から
「」という文字列を取り除くのは単純な置換)
外部HTMLパーサで、このような「"ありのまま"取得」ができるのかどうか、
僕は知らないのですが、
少なくともswingのDocumentParserで「"ありのまま"取得」をやろうとすると、
ちょっと単純ではないみたい…?(※ほとんどパーサ部分を書き直すことになる
ような気がします。書き直すくらいなら、別のパーサを調べてみる価値は
あるのでは?)
No.2ベストアンサー
- 回答日時:
ちなみに
public class Maze extends HTMLEditorKit.ParserCallback {
public void handleText(char[] data, int pos) {
StringBuffer array=new StringBuffer();
for(int i=0;i<data.length;i++){
char ch=data[i];
System.out.println(ch+"="+(int)ch);
switch(ch){
case 160://
array.append("(^.^)");
break;
default:
array.append(ch);
}
}
System.out.println("--------------");
System.out.println(array);
}
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(
new FileReader("index.html"));
ParserDelegator pd = new ParserDelegator();
pd.parse(br, new Maze(), true);
br.close();
} catch (IOException e) {}
}
}
/*
---index.htmlの内容---
<html>
<body>
3月27日
</body>
</html>
*/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 分数が正常に表示されない。 6 2022/05/09 18:53
- JavaScript htmlとcssで分数を表示後、分数の右側に文書を書きたい 1 2022/04/28 10:09
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- WordPress(ワードプレス) ワードプレスで、左寄せ画像と文字を横並びにせず、画像の下に文字を表示される方法を教えてください 1 2022/04/24 11:06
- WordPress(ワードプレス) WordPressの記事の途中に差し込む 1 2023/06/29 11:18
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドライン引数の*(アフ...
-
変数を動的に利用するには?
-
日本語が文字コードによっては...
-
クラスを使った電卓のプログラム
-
javaのプログラミングで作るRPG...
-
Java プログラム public class ...
-
DESを使用した暗号化/復号化処...
-
JSP/Servletのパラメータの受け...
-
NoSuchMethodErrorが解決できま...
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Socketの接続のタイムアウトを...
-
プログラミングの問題です。大...
-
数字の大小の比較とテストメソッド
-
コンストラクタの引数の中のnew?
-
java.util.concurrent.Future g...
-
StringクラスのcompareToメソッド
-
Javaがうまく動作しない理由
-
TCPプログラミング
-
ArrayList でスタックを
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングの問題です。大...
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Javaでlog4jを使ってログ出力を...
-
NoSuchMethodErrorが解決できま...
-
javaで特定の文字列から特定の...
-
Socketの接続のタイムアウトを...
-
Java プログラム public class ...
-
javaのプログラミングで作るRPG...
-
インタフェイス実装と抽象クラ...
-
コマンドライン引数の*(アフ...
-
【初心者です】javaで平均値を...
-
Javaで日本語の出力が文字化けする
-
(大至急)JavaでATMもどきを作成
-
コンストラクタの引数の中のnew?
-
Java 最大公約数 gcd
-
C# DatagridviewにExcelシート...
-
randomで
-
GetterとSetterをやったのに。
おすすめ情報