XML内のHTMLをWebBrowserコントロールで表示するには


アキエリア  2006-12-20 07:58:42  No: 97459

こんばんは、アキエリアと申します。
現在XMLを読み込んで値を取得しウェブブラウザーコントロールにて表示するというプログラムを作っております。
-----XML-----
<?xml version="1.0" encoding="UTF-8"?>
<ルートタイトル>
  <テスト>
    <文>あああああああ &lt;br / gt;
      &lt;hr /&gt;
            &lt;img src ="図フォルダ\図1.jpg" /&gt;
    </文>
  </テスト>
</ルートタイトル>

-----ファイル配置-----
test.xml
  |
図フォルダ ---図1.jpg

上記のXMLをDOMで読み取り<文>の値をInnerTextでStr_bunに代入して、以下のプログラムでWebBrowser1に表示しようとしています。

If (WebBrowser1.Document IsNot Nothing) Then
   Dim doc As HtmlDocument = WebBrowser1.Document.OpenNew(True)
   doc.Write(Str_bun)
End If

改行<br>や横線<hr>は問題なく表示できるのですが相対パスで指定している<img>タグが"×"と表示に失敗してしまいます。
×と表示された画像のプロパティを見るとアドレスが about:blank図フォルダ\図1.jpg となってしまっています。
XMLのなかにHTMLが入っており、さらにいろいろな環境で使用する予定なので絶対パスの指定がうまくできない状況です。
何か良い方法などなりますでしょうか?是非ともお知恵をお貸しください!


Hongliang  URL  2006-12-20 08:24:19  No: 97460

取りあえず何を基準にすればいいのかは分かっているものとして。

多少強引ですが、Write のあと、CreateElement で base 要素を作り、head 要素の HtmlElement に AppendChild してやればいけるように思います。


アキエリア  2006-12-20 08:48:57  No: 97461

すみません、環境を書き忘れました。
VB2005で制作しております


アキエリア  2006-12-22 00:27:34  No: 97462

Hongliang様レスありがとうございます。

基準は
C:\XMLテスト\test.xml  にXMLがあるとしたら
C:\XMLテスト  を指定すればよいのでしょうか?

いまいち分からず四苦八苦していますがもう少し調べてみます。
base酔うその意味は理解できました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加