トップ回答者
HTMLソースの解析

質問
-
HTMLファイルを読み込んで、必要な情報を表示するプログラムを作成しようとたくらんでいます。
input.html(読み込むHTML)
<html><title>サンプルページ</title><body><h1>サンプルページ詳細</h1><p>ああああああああああああああああ<p></body></html>
このようなHTMLソースがあったとすると、
string title = "サンプルページ";
string midashi = "サンプルページ詳細";
string naiyo = "あああああああああああああ"
のように余計なHTMLタグを消した上で必要な情報のみ変数に入れて作成したいと考えております。
そこで、
StreamReader sr = new StreamReader("input.html");
string swap = sr.ReadToEnd();
string title = swap.Remove(0,13);
string midashi = swap.Remove(0,48);
string naiyo = swap.Remove(0,65);
sr.Close();
としましたが、いまいちうまくいきません。
何が原因なのかいまいち分からず困っています。
どなたかご教授願えないでしょうか?
回答
-
SpaghettiProgram さんからの引用
何が原因なのかいまいち分からず困っています。
どなたかご教授願えないでしょうか?期待する結果がどのようなもので、実際の結果がどのようなものになったかを見比べ、何が悪いか考えましょう。
少なくとも、後ろに余計な文字列が多数ついているのではないかと推測します。
あと、文字数を決めうちにすると、他のHTMLファイルではあっさり失敗します。
練習として書くのは構いませんが、どんなHTMLファイルでも対応するということであれば、相応の苦労があるでしょう。
custar さんからの引用 HTML を扱うためのライブラリがあれば、そんなのを使われた方が楽なんじゃないですか?
この辺とかですかね。
http://www.atmarkit.co.jp/fdotnet/dotnettips/687nondispbrowser/nondispbrowser.html
もちろん、他にもあるかもしれません。
-
SpaghettiProgram さんからの引用
無知で申し訳ないのですが、DOMとはどういったものなのでしょうか?http://ja.wikipedia.org/wiki/Document_Object_Model
DOMは取り決めであって、具体的なライブラリや実装の話ではありません。
-
自分でHTMLをパースしたいなら、この記事が参考になると思います
すべての返信
-
SpaghettiProgram さんからの引用
何が原因なのかいまいち分からず困っています。
どなたかご教授願えないでしょうか?期待する結果がどのようなもので、実際の結果がどのようなものになったかを見比べ、何が悪いか考えましょう。
少なくとも、後ろに余計な文字列が多数ついているのではないかと推測します。
あと、文字数を決めうちにすると、他のHTMLファイルではあっさり失敗します。
練習として書くのは構いませんが、どんなHTMLファイルでも対応するということであれば、相応の苦労があるでしょう。
custar さんからの引用 HTML を扱うためのライブラリがあれば、そんなのを使われた方が楽なんじゃないですか?
この辺とかですかね。
http://www.atmarkit.co.jp/fdotnet/dotnettips/687nondispbrowser/nondispbrowser.html
もちろん、他にもあるかもしれません。
-
SpaghettiProgram さんからの引用
無知で申し訳ないのですが、DOMとはどういったものなのでしょうか?http://ja.wikipedia.org/wiki/Document_Object_Model
DOMは取り決めであって、具体的なライブラリや実装の話ではありません。
-
自分でHTMLをパースしたいなら、この記事が参考になると思います
-
-
みなさんこんにちは。森田 知良です。
Forumのご利用ありがとうございます。回答を寄せてくださったみなさん、有用な情報ありがとうございました。
SpaghettiProgramさん、その後いかがでしょうか?
私の方で回答を投稿してくださったみなさんの情報は、有用な情報と判断しましたので、
勝手ながら回答済みチェックをつけさせていただきました。
SpaghettiProgramさんは、回答済みチェックを解除することもできますのでご確認ください。回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
有効な回答があった場合は、なるべく回答済みボタンを押してチェックを付けてくださるようお願いします。
また、追加の質問がありましたら、是非もう一度投稿してくださるようお願いします。それでは、これからもフォーラムのご利用をよろしくお願いいたします。