WebBrowser 컨트롤로 XML 표시

2879 단어 C#.NET

개요



XML을 화면에 표시하는 경우 System.Windows.Forms.WebBrowser 컨트롤을 사용하여 DocumentText 속성에 내용을 설정하여 구현할 수 있지만 태그 이름에 head 등이 있으면 잘 표시되지 않는 문제가 있습니다.
(head로 시작하는 header 등에서도 안됨)



표시할 XML

<?xml version="1.0" encoding="utf-8"?>
<doc>
  <header>ヘッダ</header>
  <data>データ</data>
</doc>

IE로 표시했을 경우, 아래 그림과 같이 된다.


IE로 표시





보통



DocumentText 에 캐릭터 라인을 설정했을 경우는 IE 와 같이 표시되지 않는다. .
컨트롤 내부에서 HTML의 HEAD 태그로 오인해 그렇게.


WebBrowser에서 표시 1






일반 코드
this.webBrowser1.DocumentText = xml;

개선



XML 캐릭터 라인을 일단 파일에 보존해, Navigate 메소드를 호출하는 것으로, IE 와 같은 표시가 되었다.


WebBrowser에서 표시 2






개선 코드
var path = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid()}.xml");
File.WriteAllText(path, xml);
this.webBrowser1.Navigate(path);
File.Delete(path);

좋은 웹페이지 즐겨찾기