tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルHTMLの読み込みについて
記事No2557
投稿日: 2005/11/11(Fri) 19:48
投稿者TERA
[OSのVer]:WindowsXP Pro  [VBのVer]:VB.NET
XMLTextReaderでHTMLディスク上のHTMLファイルを読もうとするとエラーが出ます。
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN" "hhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
<html xmlns="hhttp://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>

どうやらDocType宣言に問題があるようで、DocTypeを完全に消すと読めるようになります。DocTypeを
そのまま読めるようにするにはどうすればいいのでしょうか。教えてください。

[ツリー表示へ]
タイトルRe: HTMLの読み込みについて
記事No2559
投稿日: 2005/11/12(Sat) 10:07
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "hhttp://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="hhttp://www.w3.org/1999/xhtml" xml:lang="ja-jp">

[ツリー表示へ]
タイトルRe^2: HTMLの読み込みについて
記事No2573
投稿日: 2005/11/14(Mon) 17:51
投稿者TERA
返信ありがとうございます。しかし、ヘッダを書き換えても動きませんでした。

[ツリー表示へ]
タイトルRe^3: HTMLの読み込みについて
記事No2574
投稿日: 2005/11/14(Mon) 18:44
投稿者なおこ(・∀・)
お世話になります。

↓ここのhtmlだと問題なく動きますね。
hhttp://www.kanzaki.com/docs/html/xhtml1.html

Dim reader As Xml.XmlTextReader
Try
  reader = New Xml.XmlTextReader("hhttp://www.kanzaki.com/docs/html/xhtml1.html")
  While (reader.Read)
    Console.WriteLine(reader.Value)
  End While
Finally
  If Not reader Is Nothing Then reader.Close()
End Try

[ツリー表示へ]
タイトルRe^4: HTMLの読み込みについて
記事No2580
投稿日: 2005/11/14(Mon) 20:30
投稿者TERA
> ↓ここのhtmlだと問題なく動きますね。
> hhttp://www.kanzaki.com/docs/html/xhtml1.html

やはり動かなくなりました。読み込むと途中でreader.Readでエラーが出ます。
これも保存してDocType宣言を消すと動いてくれます。
VBはDocType内のLink先を読むみたいなんですが、これを読まないようにするとか出来ないでしょうか。

[ツリー表示へ]
タイトルRe^5: HTMLの読み込みについて
記事No2581
投稿日: 2005/11/14(Mon) 20:50
投稿者なおこ(・∀・)
お世話になります。

あれ...?私の環境では特に問題なかったんですが。
魔界の仮面弁士さんがおっしゃっていますが、
↓こういうところで、妥当なXHTML文書かどうかチェックして修正するのが筋だと思うのですが、
[Another HTML-lint gateway]
hhttp://openlab.ring.gr.jp/k16/htmllint/htmllint.html

とりあえず、
> VBはDocType内のLink先を読むみたいなんですが、これを読まないようにするとか出来ないでしょう
か。
読まないようにしたいのであれば、ExceptionをCtachして握りつぶすしかないと思われます。

Dim reader As Xml.XmlTextReader
Try
  reader = New Xml.XmlTextReader("c:\xhtml1.html")
  While (True)
    Dim bolRead As Boolean = False
    Try
      bolRead = reader.Read()
    Catch ex As System.Net.WebException
      '握りつぶす
    End Try
    If Not bolRead Then Exit While
    Console.WriteLine(reader.Value)
  End While
Finally
  If Not reader Is Nothing Then reader.Close()
End Try

[ツリー表示へ]
タイトルRe^5: HTMLの読み込みについて
記事No2583
投稿日: 2005/11/14(Mon) 21:28
投稿者魔界の仮面弁士
> > ↓ここのhtmlだと問題なく動きますね。
> > hhttp://www.kanzaki.com/docs/html/xhtml1.html
> やはり動かなくなりました。読み込むと途中でreader.Readでエラーが出ます。

これに関しては、当方では正常に読み込まれました。
ただし、ProhibitDtd = True に設定しておいた場合には、例外が発生しましたけれども。

"System.Xml.XmlException: 以下のテキストはこのコンテキストで使用できません : 'DOCTYPE' 行 2、
位置 3 です。


> DocType内のLink先を読むみたいなんですが、これを読まないようにするとか出来ないでしょうか。
とりあえず、XmlResolverプロパティを空にしてみるとか。

[ツリー表示へ]
タイトルRe^6: HTMLの読み込みについて
記事No2585
投稿日: 2005/11/14(Mon) 21:38
投稿者TERA
> とりあえず、XmlResolverプロパティを空にしてみるとか。
すんなりうまくいきました。
Lintでチェックしたり最低までタグを削ったりしたのですが環境が悪かったのかもしれません。
答えを頂いたみなさんありがとうございました。

[ツリー表示へ]
タイトルRe: HTMLの読み込みについて
記事No2576
投稿日: 2005/11/14(Mon) 18:54
投稿者魔界の仮面弁士
> XMLTextReaderでHTMLディスク上のHTMLファイルを読もうとするとエラーが出ます。
HTML というか、XHTML ですね。

で、それはどのようなエラーなのでしょうか?
また、読み込ませようとしている文書は、valid になっていますか? それとも well-formed ?

[ツリー表示へ]